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()