微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

合并策略控制 Apollo Client

如何解决合并策略控制 Apollo Client

有没有办法告诉 apollo 只在使用 fetchMore 方法后才调用合并策略?我正在使用它来实现无限滚动并将现有数据和传入数据粘在一起,这对我来说非常有用。但是当我使用 writeQuery 方法手动更改我的缓存时,合并策略也会在该操作之后执行,这会导致重复数据。

解决方法

您可以访问合并函数中的变量。

如果 fetchMore 具有 writeQuery 没有的特定分页变量,您可以决定仅连接 fetchMore 的传入结果:

例如,如果 fetchMore 使用 nextToken 变量:

typePolicies: {
      Query: {
        fields: {
          myQuery: {
            keyArgs: false,merge: (existing = [],incoming = [],{ args }) => {
              if (args?.nextToken === undefined) return incoming
              return [...existing,...incoming]
            }
          },

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。