【发布时间】:2021-09-01 00:55:06
【问题描述】:
有没有办法告诉 apollo 只有在使用 fetchMore 方法后才调用合并策略?我用它来实现无限滚动并将现有和传入的数据粘在一起,这对我来说非常有用。但是当我使用 writeQuery 方法手动更改缓存时,合并策略也会在该操作之后执行,这会导致重复数据。
【问题讨论】:
标签: apollo apollo-client react-apollo
有没有办法告诉 apollo 只有在使用 fetchMore 方法后才调用合并策略?我用它来实现无限滚动并将现有和传入的数据粘在一起,这对我来说非常有用。但是当我使用 writeQuery 方法手动更改缓存时,合并策略也会在该操作之后执行,这会导致重复数据。
【问题讨论】:
标签: apollo apollo-client react-apollo
您可以访问合并函数中的变量。
如果fetchMore 具有writeQuery 没有的特定分页变量,您可以决定仅为fetchMore 连接传入的结果:
例如,如果 fetchMore 使用 nextToken 变量:
typePolicies: {
Query: {
fields: {
myQuery: {
keyArgs: false,
merge: (existing = [], incoming = [], { args }) => {
if (args?.nextToken === undefined) return incoming
return [...existing, ...incoming]
}
},
【讨论】: