Выберите компонент в шаблоне LitElement, который нельзя внедрить в Java на стороне сервера с помощью Vaadin 20.0.3

#select #vaadin #lit-element #vaadin20

Вопрос:

Выберите компонент не работает с приведенным ниже кодом:

машинописный текст

 import {LitElement, html} from 'lit-element';
import '@vaadin/vaadin-ordered-layout/vaadin-horizontal-layout.js';
import '@vaadin/vaadin-select/vaadin-select.js';
import '@vaadin/vaadin-list-box/theme/lumo/vaadin-list-box.js';
import '@vaadin/vaadin-item/theme/lumo/vaadin-item.js';

class LinkageToolbar extends LitElement {
    render() {
        return html`
            <vaadin-horizontal-layout>
                <vaadin-select id="linkagePosition">
                    <template>
                        <vaadin-list-box>
                            <vaadin-item>?</vaadin-item>
                            <vaadin-item>1</vaadin-item>
                            <vaadin-item>2</vaadin-item>
                            <vaadin-item>3</vaadin-item>
                            <vaadin-item>4</vaadin-item>
                            <vaadin-item>5</vaadin-item>
                            <vaadin-item>6</vaadin-item>
                            <vaadin-item>7</vaadin-item>
                            <vaadin-item>8</vaadin-item>
                            <vaadin-item>9</vaadin-item>
                        </vaadin-list-box>
                    </template>
                </vaadin-select>
            </vaadin-horizontal-layout>
            `;
    }
}

customElements.define('linkage-toolbar', LinkageToolbar);
 

Ява

 @Tag("linkage-toolbar")
@JsModule("./src/linkage-toolbar.ts")
@SuppressWarnings("serial")
public class LinkageToolbar extends LitTemplate {
    @Id("linkagePosition")
    private Select<String> linkagePosition;
}
 

Код работает на стороне клиента, но не внедряет компонент на Java на стороне сервера. Затем на стороне клиента возникает ошибка ниже:

FlowBootstrap.js?f80c:67 В выборе Vaadin, похоже, произошла ошибка: вы должны использовать либо средство визуализации, либо шаблон только для выбранного содержимого. Пожалуйста, отправьте сообщение по адресу https://github.com/vaadin/vaadin-select/issues/new!

Как внедрить компонент Select в Java на стороне сервера? У тебя есть какие-нибудь идеи?

Комментарии:

1. Вы конкретизируете Select , потому что другие компоненты работают?

Ответ №1:

Если вы используете @Id привязку для подключения элемента к компоненту на стороне сервера, вы должны оставить содержимое элемента пустым и инициализировать содержимое на сервере. Другими словами, вместо использования

  <vaadin-select id="linkagePosition">
                    <template>
                        <vaadin-list-box>
                            <vaadin-item>?</vaadin-item>
                            <vaadin-item>1</vaadin-item>
                            <vaadin-item>2</vaadin-item>
...
 

в вашем файле машинописного текста у вас должно быть только

  <vaadin-select id="linkagePosition"></vaadin-select>
 

и инициализируйте выбранные значения в коде Java.

Комментарии:

1. Спасибо, что ответили. Я решил ее, как ты и сказал!