我可以延迟使用 refetchQueries 吗?我可以设置延迟还是可以在函数中调用 refetchQueries?
谢谢!
最佳答案
我找不到一种优雅的方式来延迟 refetchQueries
.相反,我只是直接修改缓存,如文档本节后面提到的那样。 https://www.apollographql.com/docs/react/caching/advanced-topics/#updating-after-a-mutation
这是我的解决方案中的一个片段。我循环的原因 sortPermutations
是查询可能缓存了不同集合的数据 variables
.此解决方案遍历所有这些。
const [createUser] = useMutation<AddUser, AddUserVariables>(ADD_USER, {
update: (cache, { data }) => {
if (!data?.addUser) return
const cachedUsers = cache.readQuery<GetUsers>({
query: GET_USERS,
variables: sortedColumn,
})
sortPermutations.forEach(({ sortBy, sortOrder }) => {
const users = [data.addUser, ...(cachedUsers?.users ?? [])].sort(
sortUsers(sortBy, sortOrder),
)
cache.writeQuery<GetUsers, GetUsersVariables>({
data: { users },
query: GET_USERS,
variables: { sortBy, sortOrder },
})
})
},
})
关于Apollo:延迟重新获取查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57366328/