Reactjs Apollo:graphql错误后如何处理缓存?
我知道如何在成功变异后更新缓存(使用Reactjs Apollo:graphql错误后如何处理缓存?,reactjs,graphql,apollo,react-apollo,Reactjs,Graphql,Apollo,React Apollo,我知道如何在成功变异后更新缓存(使用update)。 我知道如何自己处理错误(在客户端上使用try/catch和全局onErrorconfig) 发生变异错误后,如何更新缓存? 我之所以需要它,是因为我正在缓存中处理每个字段加载字段(作为本地@client字段),并且我希望在变异失败后将它们设置为false(如果需要,还返回字段的上一个值)。您是否有更好的概念来处理每个现场装载指示器 我目前正在使用withApollo获取客户端,然后使用client.cache.writeData手动操作缓存。
update
)。
我知道如何自己处理错误(在客户端上使用try/catch
和全局onError
config)
发生变异错误后,如何更新缓存?
我之所以需要它,是因为我正在缓存中处理每个字段加载字段(作为本地@client
字段),并且我希望在变异失败后将它们设置为false
(如果需要,还返回字段的上一个值)。您是否有更好的概念来处理每个现场装载指示器
我目前正在使用withApollo获取客户端,然后使用client.cache.writeData
手动操作缓存。它有点工作,但我有渲染问题-我可以在控制台/开发人员工具中看到更改,但在实际的元素中看不到,在元素中进行另一次更改后,它会接受更新的加载值
还有其他方法吗?您应该使用
客户端.writeData
而不是缓存.writeData
——后者不会触发UI中的反应式更新,而前者会。一旦迁移到客户机的版本3,就需要使用<代码> RealSturys或client.writeQuery
完成了这项工作,尽管我使用了Daniel的建议,并使用writeFragment来证明未来。谢谢谢谢完美的解释。我希望有一些内置功能可以在发生变异错误后访问缓存(很像在update
成功时),这样就不需要使用阿波罗。但如果没有-这是我丢失的信息。@davikasis您可以使用onError
作为回调,但这只作为参数传递错误。如果您使用的是钩子(由于HOC已被弃用,您确实应该这样做),那么钩子结果实际上将包括客户机。