1

我正在尝试将 gwt 与 Web 组件一起使用,我想通过包装它们来重用一些小部件(并在微前端场景中使用它们,但一次一步)。我jsinterop在一个虚拟项目中使用,但我不能在 javascript 部分使用我的小部件。我使用@JsType 来共享一些类(小部件和它们必须呈现的内容),这是我的简单 Web 组件的片段:

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来使用 JsInterop。您可以在此处找到该项目。gwt-maven-plugin 2.8.1<generateJsInteropExports>true</generateJsInteropExports>

4

0 回答 0