我创建了一个数据视图(数据通过服务器组件从数据库中获取),其中数据以卡片布局呈现,并通过
load more
策略进行分页。加载更多内容是在滚动时自动完成的,但这并不真正相关:)
在每张卡上,用户都有一个删除它的操作,这会触发服务器操作以从数据库中删除该项目。期望的结果是 UI 更新并且项目卡从视图中消失。
但是,这仅在从第一页删除项目时才有效。每当您向下滚动到第 2 页以上并删除某个项目时,它会将其从数据库中删除,但 UI 不会更新并且卡片仍然可见,直到您完全刷新页面并加载下一页。
我认为这是预期会发生的事情,因为触发删除(服务器)操作后会发生部分页面刷新(我猜),这会重新加载第一页的数据。
正确调整 UI 的首选方法是什么?
有问题的仓库:https://github.com/theboxer/pagination-example (请注意,删除的项目不会存储在任何地方,整页重新加载将显示原始数据集)
我尝试了可能是 React 中最愚蠢的事情 - 直接修改 DOM,并尝试在服务器操作触发后删除 DOM 元素,OFC 的行为完全不可预测,包括删除 2 个 DOM 节点(兄弟节点)或复制其他一些卡...
在全球国家的帮助下设法使其发挥作用。解决方案位于问题中链接的 GH 存储库中。