过滤器上的 Vaadin Flow 网格 setItems 调用 API 两次

问题描述

我有一个 vaadin 19 应用程序。该页面仅在顶部显示一个 Grid 组件和过滤器文本字段。我目前正在将其迁移到使用微服务架构的单独服务中。将所有项目分页都很好,这很好用。当我对表应用过滤器时,以两次命中 url 的方式搜索数据。

我可以在日志中看到请求已发出两次。我不知道为什么。下面是我的代码

twoWords

这会调用以下方法

filterText.addValuechangelistener(e -> filterByName(e.getValue()));

任何想法为什么这会调用微服务 api 两次。

谢谢

解决方法

我认为这是因为 Grid 分两批获取行。首先,即使它不知道要显示多少,它也会立即进行乐观获取以立即显示某些内容。在基于最初获取的数据在浏览器中实际呈现组件后,它可能会再次请求获取更多行以将它们缓存以确保平滑滚动。

您可以通过检查两个请求是否针对不同的页面而不是在两个请求中都相同来验证这一点。