Vaadin Flow: как определить, подключен ли компонент - PullRequest
0 голосов
/ 11 июля 2019

Как надежно узнать, присутствует ли данный Component в DOM?

До сих пор я использовал Component.getUI (). IsPresent () , которыйПредполагается, что он способен определить, присоединен ли Component к UI.

. Возможно также, что я столкнулся с крайним случаем, поскольку рассматриваемый Components инкапсулирован в ComponentRendererкоторый управляется Grid.

Мне нужно получить доступ к этим Componets через 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());
  }
}

1 Ответ

0 голосов
/ 22 июля 2019

После некоторого копания я наткнулся на StateNode API:

comp.getElement().getNode().isAttached() 
...