0

如何在 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 中做到这一点?

4

1 回答 1

5

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

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

元素在附加后成为一个 UI 的场景图( 错误消息中的状态树)的一部分。此时,Vaadin 内部确保该元素尚未附加到不同的 UI(根)(可以在一个 UI 内移动元素,也可以通过将其添加到同一 UI 的不同父级来工作)。

如果您在服务器上共享状态,则必须为每个 UI 创建元素,然后将此状态与@Push等 同步UI.access

于 2020-11-23T12:01:34.717 回答