Vaadin Flow:如何判断组件是否已附加
Vaadin Flow: How to tell if a Component is attached
如何可靠地确定给定的 Component
是否实际存在于 DOM
中?
直到现在我使用 Component.getUI().isPresent() 它应该能够确定 Component
是否附加到 UI
.
也可能是我 运行 进入了边缘情况,因为有问题的 Components
被封装在 ComponentRenderer
中,由 Grid
管理。
我需要像这样通过 JavaScript 访问这些 Componets
:
void setValue(Component comp, Value value){
Runnable callJs = comp.getUI().ifPresent(ui -> ui.getPage().executeJs("someCall([=10=])", value));
if(comp.isAttached()){
// execute it right away
callJs.run();
} else {
// execute onAttach
comp.addAttachListener(evt -> callJs.run());
}
}
经过一番挖掘,我偶然发现了 StateNode API:
comp.getElement().getNode().isAttached()
如何可靠地确定给定的 Component
是否实际存在于 DOM
中?
直到现在我使用 Component.getUI().isPresent() 它应该能够确定 Component
是否附加到 UI
.
也可能是我 运行 进入了边缘情况,因为有问题的 Components
被封装在 ComponentRenderer
中,由 Grid
管理。
我需要像这样通过 JavaScript 访问这些 Componets
:
void setValue(Component comp, Value value){
Runnable callJs = comp.getUI().ifPresent(ui -> ui.getPage().executeJs("someCall([=10=])", value));
if(comp.isAttached()){
// execute it right away
callJs.run();
} else {
// execute onAttach
comp.addAttachListener(evt -> callJs.run());
}
}
经过一番挖掘,我偶然发现了 StateNode API:
comp.getElement().getNode().isAttached()