Vaadin14:在页面刷新时删除广播注册

我按照 Vaadin 教程(创建协作视图)来广播事件并注册它们。

Registration eventRegistration;

@Override
protected void onAttach(AttachEvent attachEvent) {
    log.debug("In attach...");
    UI ui = attachEvent.getUI();
    eventRegistration= Broadcaster.register(
        "eventName", 
        message -> ui.access(() -> {
           log.debug("Request to refresh grid...");
           presenter.refreshGrid();
           ui.push();
        }));
}

@Override
protected void onDetach(DetachEvent detachEvent) {
    log.debug("In detach...");
    if(eventRegistration != null) {
        eventRegistration.remove();
        eventRegistration = null;
    }
}

一切正常,除了刷新页面时,onDetach()不执行 中的逻辑。但是,刷新后,您将进入该onAttach()方法。因此,您实际上将注册几个“相同”的侦听器,而无需删除前一个侦听器,并且实际上获得了两倍的侦听器。例如onDetach(),仅当您转到另一个菜单项时才能访问该方法。

您可以在下面找到示例日志。

Vaadin 推荐的在刷新之前/期间删除这些侦听器的方法是什么?

以上是Vaadin14:在页面刷新时删除广播注册的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>