我正在将apollo-client
用于我的graphql设置。我有一个分页调用,为此我使用了fetchMore
挂钩返回的useQuery
函数。
在fetchMore
函数中,我使用其updateQuery
参数将新获取的数据附加到缓存中的结果中。
fetchMore({
variables: {
request: fetchMorerequest,
},
updateQuery: (previousResult, { fetchMoreResult }) => {
const updatedResults = update(previousResult, {
list: {
data: { $push: fetchMoreResult.list.data },
hasMore: { $set: fetchMoreResult.list.hasMore },
},
});
return updatedResults;
},
});
这对我来说很好。
现在,我将fetchPolicy
从默认的cache-first
更改为cache-and-network
。
更改之后,我从updatedResults
函数返回的updateQuery
反映在我的缓存中,但没有返回到我的组件中。我可以在Chrome的阿波罗扩展程序的缓存中看到更新的项目。但不要让它们进入我的组件。
任何想法在这里可能是个问题吗?我想念什么吗?请帮忙。