Я пытаюсь использовать gwt с веб-компонентом, я хотел бы повторно использовать некоторые виджеты, оборачивая их (и использовать их в сценарии с микро-интерфейсом, но один шаг за раз). Я использую jsinterop
в фиктивном проекте, но не могу использовать свой виджет в части javascript. Я использую @JsType, чтобы поделиться некоторыми классами (виджетами и тем, что они должны отображать), вот фрагмент моего простого веб-компонента:
import './gwtjs/gwtjs.nocache.js';
window.customElements.define('effort-component', class EffortComponent extends HTMLElement {
constructor() {
super();
this._shadowRoot = this.attachShadow({ 'mode': 'open' });
}
connectedCallback() {
console.log('connected!');
var actv1 = new edu.pezzati.gwtjs.client.provided.model.Activity;
...
var model = [];
model[0] = [actv1, actv2];
model[1] = [eff1, eff2, eff3];
var effortTable = edu.pezzati.gwtjs.client.provided.EffortTable();
this._shadowRoot.appendChild(effortTable);
effortTable.refresh(model);
}
});
когда компонент подключен, я получаю:
gwtjs.component.js:11 Uncaught ReferenceError: edu is not defined
at HTMLElement.connectedCallback (gwtjs.component.js:11)
at gwtjs.component.js:2
Я использую gwt 2.8.1
, mojo's gwt-maven-plugin 2.8.1
с флагом <generateJsInteropExports>true</generateJsInteropExports>
для использования JsInterop. Вы можете найти проект здесь .