Apollo Client 2:来自 Mutation 的新对象:更新所有缓存的查询,这个新对象应该是其中的一部分? [复制]
Posted
技术标签:
【中文标题】Apollo Client 2:来自 Mutation 的新对象:更新所有缓存的查询,这个新对象应该是其中的一部分? [复制]【英文标题】:Apollo Client 2: New object from Mutation: Update all cached queries this new object should be part of? [duplicate] 【发布时间】:2019-02-05 12:14:45 【问题描述】:对于创建新对象的突变,是否可以自动更新该新对象应属于的所有缓存查询(以列表/单一形式)?
与需要了解要更新哪些查询的手动解决方案相反: https://www.apollographql.com/docs/react/essentials/mutations.html#update https://www.apollographql.com/docs/react/features/optimistic-ui.html#optimistic-advanced
我有一种感觉,这可能必须在未来版本的 Apollo 中实现,它会考虑这个用例,但也许我错了,今天可以做到。
请随时提供不同的实现想法/场景/想法,以决定哪些数据需要存在于客户端,以确定 apollo 应该更新哪些查询,或者这是否可以自动化。
例子:
架构:TodoList、Todo 操作:在 TodoList 中创建一个新的 Todo 结果:Todo 自动添加到 TodoList 查询,该查询会拉取所有子 Todo 对象非常感谢,
【问题讨论】:
【参考方案1】:我不确定这是否是最佳实践,但实现这一目标的一种方法是简单地修改您对 Apollo 服务器上的突变的响应。我的意思是,您可以返回整个更新后的列表,而不是创建新的 TODO,如果所有字段(__typename 等)都对应于存储在缓存中的待办事项列表,它将自动更新
【讨论】:
以上是关于Apollo Client 2:来自 Mutation 的新对象:更新所有缓存的查询,这个新对象应该是其中的一部分? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
如何在前端 apollo-client 上处理来自 Node/Koa 的后端错误
apollo 的 useQuery 数据在 client.resetStore() 之后没有更新
如何在 Apollo Client React 中获取多个条件查询?
nuxt.js + Apollo Client:如何禁用缓存?