Dom Vaadin流:如何判断组件是否已连接

Dom Vaadin流:如何判断组件是否已连接,dom,vaadin,vaadin-flow,Dom,Vaadin,Vaadin Flow,如何可靠地确定给定的组件是否实际存在于DOM中 到目前为止,我一直使用它来确定组件是否连接到UI 也可能是我遇到了一个边缘情况,因为所讨论的组件封装在ComponentRenderer中,该组件由网格管理 我需要通过JavaScript访问这些组件,如下所示: void setValue(Component comp, Value value){ Runnable callJs = comp.getUI().ifPresent(ui -> ui.getPage().executeJs(

如何可靠地确定给定的
组件是否实际存在于
DOM

到目前为止,我一直使用它来确定
组件是否连接到
UI

也可能是我遇到了一个边缘情况,因为所讨论的
组件
封装在
ComponentRenderer
中,该组件由
网格
管理

我需要通过JavaScript访问这些组件,如下所示:

void setValue(Component comp, Value value){
  Runnable callJs = comp.getUI().ifPresent(ui -> ui.getPage().executeJs("someCall($0)", value));

  if(comp.isAttached()){
    // execute it right away
    callJs.run();
  } else {
    // execute onAttach
    comp.addAttachListener(evt -> callJs.run());
  }
}

经过一番挖掘,我偶然发现了API:


如果需要使用JavaScript初始化组件,可以从其附加侦听器调用
executeJavascript
。如果我添加了一个
AttachListener
,而
组件
已经附加,它不会立即生效。如果它还没有连接,我会通过网络进行不必要的JS调用。
comp.getElement().getNode().isAttached()