Apollo客户端2:来自突变的新对象:更新所有缓存查询,此新对象应属于该对象?

时间:2018-08-30 13:58:30

标签: graphql apollo react-apollo apollo-client mutation

对于创建新对象的突变,是否可以自动更新该新对象应属于的所有缓存查询(以列表/单一形式)?

与手动解决方案相对,后者需要了解要更新哪些查询: https://www.apollographql.com/docs/react/essentials/mutations.html#update https://www.apollographql.com/docs/react/features/optimistic-ui.html#optimistic-advanced

我认为将来的Apollo版本可能会考虑到这种用例,但我可能错了,并且可以在今天完成。

请随时提供不同的实现想法/场景/想法,以了解需要在客户端中提供哪些数据,以确定阿波罗应该更新哪些查询,或者甚至有可能实现自动化。

示例:

  • 模式:TodoList,Todo
  • 操作:在TodoList中创建一个新的Todo
  • 结果:Todo自动添加到TodoList查询中,该查询将拉出所有子Todo对象

非常感谢,

1 个答案:

答案 0 :(得分:0)

我不确定这是否是最佳实践,但是要实现这一目标的一种方法是简单地修改您对Apollo服务器上的突变的响应。我的意思是,您可以返回整个更新列表,而不是创建新的TODO,并且如果所有字段(__typename等)将与存储在缓存中的待办事项列表相对应,它将自动更新