首页 > 解决方案 > @UIScope 上的网格注释视图奇怪的行为

问题描述

Vaadin 19.0.6,弹簧靴。例如,在两个不同的浏览器或选项卡中打开使用 @UIScope 注释的同一视图。然后为 window1 中的网格请求数据。现在从 window1 中的视图导航并为 window2 中的网格请求不同的数据。返回到 window1 中的视图,您将在网格中看到与 window2 中相同的数据。我还不明白如果你有 @UIScope 会发生这种情况 - 范围仅限于浏览器选项卡。某种 DataProvider 共享?

标签: vaadinvaadin-flowvaadin-grid

解决方案


我找到了这个原因。很容易混淆在 UiScope 中“保存”了哪个 bean。例如,如果您有带有 Service bean 的 DataProvider,那么 Service bean 不是每个视图唯一的。您必须将所有每个视图逻辑移动到 DataProvider 中。这是我的错误。

PS。一些额外的解释。如果您从 View bean 设置 Service bean 的一些属性,那么这些属性是全局设置的,当您返回到使用相同服务的某个视图(无论在哪里 - 选项卡、窗口、浏览器、会话)时,您将获得最后一个全局服务状态。我希望这会对某人有所帮助。


推荐阅读