【发布时间】:2020-10-12 03:33:34
【问题描述】:
我知道如何在突变成功后更新缓存(使用update)。
我知道如何自己处理错误(在客户端使用 try/catch 和全局 onError 配置)。
如何在突变错误后更新缓存?
我需要这个,因为我正在处理缓存中的每个字段加载字段(作为本地 @client 字段),并且我想在突变失败后将它们设置为 false(并且还返回字段的先前值如果需要的话)。你有更好的概念来处理每个字段的加载指示器吗?
我目前正在使用 withApollo 获取客户端,然后使用 client.cache.writeData 手动操作缓存。它有点工作,但我遇到了渲染问题 - 我可以在控制台/开发人员工具中看到更改,但在实际元素中看不到,并且在元素再次更改后,它会采用更新的加载值。
还有其他方法吗?
【问题讨论】:
-
我认为你的思维方式很好。你可以试试client.writeQuery吗?其他问题可能与您的代码有关,即客户端没有将新值重新呈现给 dom。(这与 graphql 数据流无关)
-
如果你使用react,也会出现一些记忆中的问题
-
@Peter 是的,
client.writeQuery完成了这项工作,尽管我使用了 Daniel 的建议并使用 writeFragment 来更好地证明未来。谢谢!
标签: reactjs graphql apollo react-apollo