Dojo2 如何强制重新呈现 dojo 2 小部件?

Dojo2 How to force dojo 2 widget to re-render?

我正在使用 dojo2 小部件。我想在表单提交时呈现小部件 (VDOM)。

public submitFrom(input: any): void {
    console.log("want to re-render widget after this.");
}

在 submitFrom 中,我想重新渲染我的 dom。

我找到了解决方案。

Dojo 2 widgetbase 有 invalidate 方法,它会强制 widget 重新渲染。 Dojo 2 小部件可以直接调用 invalidate(),但是非小部件只能发出事件:this.emit({ type: 'invalidate' })

public submitFrom(input: any): void {
  console.log("want to re-render widget after this.");
  // force the widget to re-render
  this.invalidate();
}

对于非widget需要做如下操作:-

public submitForm(): void {
    this.emit({ type: 'invalidate' });
}