我应该如何处理从Apollo查询中检索到的数据?
我的第一个想法是将它保存在redux存储中,修改它(使用redux减少它,使用动作创建器)然后,当数据准备好(用户点击“保存”按钮)时,向Apollo发送一个变异以更新它服务器 .
不过,我认为这不是最好的方法 . 我应该避免在这里使用Redux商店并直接使用Apollo命令式API吗?
你读过有关updating the cache的文档吗?
发送用于编辑任何内容的变异时,通常会将修改后的对象作为响应 . 当接收到更新的对象时, react-apollo 会自动更新对应于收到的相同 id 和 __typename 的相应本地存储对象 .
react-apollo
id
__typename
因此,如果您在组件上使用 graphql 装饰器从Apollo商店注入道具,当商店因突变或查询而更新时,道具应该再次自动传递 . 无需手动修改它们 .
graphql
在某些情况下,您需要使用 store.readyQuery 和 store.writeQuery ,但它们是边缘情况,希望不会太多 .
store.readyQuery
store.writeQuery
尽管如此,我仍然很舒服并且有时间与 react-apollo 一起工作以了解它是如何工作的,以及它可能更好地直接与Apollo合作,而不是尝试做其他事情 .
1 回答
你读过有关updating the cache的文档吗?
发送用于编辑任何内容的变异时,通常会将修改后的对象作为响应 . 当接收到更新的对象时,
react-apollo
会自动更新对应于收到的相同id
和__typename
的相应本地存储对象 .因此,如果您在组件上使用
graphql
装饰器从Apollo商店注入道具,当商店因突变或查询而更新时,道具应该再次自动传递 . 无需手动修改它们 .在某些情况下,您需要使用
store.readyQuery
和store.writeQuery
,但它们是边缘情况,希望不会太多 .尽管如此,我仍然很舒服并且有时间与
react-apollo
一起工作以了解它是如何工作的,以及它可能更好地直接与Apollo合作,而不是尝试做其他事情 .