如何在 Vaadin 14 中清除 up/remove AppLayout 中的内容?

How can I clean up/remove the content in AppLayout in Vaadin 14?

如何在 Vaadin 14 中显示静态组件?每次更新页面时,我都会收到错误。

这样的话,startStopYOLO, cameras, darknet, configuration, weights, thresholds, realTimeCameraImage, layout都是static

// Content
if(layout == null) {
    layout = new VerticalLayout();
    layout.add(new FormLayout(startStopYOLO, cameras, darknet, configuration, weights, thresholds));
    layout.add(realTimeCameraImage);
    layout.setAlignItems(Alignment.CENTER);
}
setContent(layout); // Here I get the error:

错误是:

Can't move a node from one state tree to another. If this is intentional, first remove the node from its current state tree by calling removeFromTree

所以我需要先清理 content。我怎样才能在 Vaadin 14 中做到这一点?

错误已经在某种程度上说明了问题:Can't move a node from one state tree to another

或者更确切地说:您 不能在不同的 UI 上共享 元素。所以不行 static,没有单例,... - 您必须创建新元素。

元素成为场景图的一部分 UI(状态树 从错误消息中)一旦他们得到 attached。此时的 Vaadin 内部确保,该元素尚未附加到 一个不同的 UI(根)(可以将元素移动到一个 UI 中,这 也可以通过将其添加到相同 UI).

的不同父级来工作

如果您有共享状态,例如服务器,你必须创建 每个 UI 的元素,然后将此状态与 @Push 同步 UI.access 或类似的。