基于偏移量的分页 fetchMore 更新加载状态不一致

作者: colinlawrence创建于 2025年9月22日更新于 2026年1月22日
标签🐞 bug

问题说明

我已查明阿波罗客户端在使用以 " 牵引 " 为基准的平面图时的行为有缺陷。 在列表末尾使用 “ fachMore” 时, 当返回的数据是空数组时( 在数据被合并到缓存之前), 加载状态更新为“ true ” 但从不更新为“ false ”。 这个问题似乎与用数组字段定义返回的对象以及清单上有许多项目有关。

与复制的链接

https://codesandbox.io/p/devbox/nifty-lake-fvhdxm (中文(简体) ).

复制步骤

  1. 访问上述链接。

  2. 点击按钮 " Fetch more " 模拟到列表底部。

  3. 在获取所有数据之前继续点击 " Fetch more " 按钮(4996项)。

  4. 再次单击按钮 " Fetch more " 来模拟返回空阵列的最后请求。

  5. 注意装载状态不恢复为 " 虚假 " 。

预期行为

当获取出所有数据时,装载状态应返回 " 虚假 " 状态。

实际行为

装载状态不会回到 " 虚假 " 状态。 合并的页码数据似乎正在传递到缓存中,但这并没有引发下游的事件.

补充说明

将项目总数更新到4995项,并进行复制步骤,不会造成与装载状态恢复到预期的 " 假 " 相同的行为。 更新项目计划定义并去除 " 属性 " 数组字段不会产生与装入状态恢复到预期的 " 虚假 " 相同的行为.

内容来源: apollographql/apollo-client