【发布时间】:2019-11-10 02:46:05
【问题描述】:
我的 Apollo 缓存中存储了很多活动查询,例如:
items(isPublished: true, orderBy: "name", filterByName: "")
items(isPublished: true, orderBy: "name", filterByName: "home")
items(isPublished: false, orderBy: "name", filterByName: "home")
items(isPublished: true, orderBy: "age", filterByName: "home")
...
因此,对于同一个查询 (GET_ITEMS),可能会有很多可能的变量,过滤器也越来越多。当我想添加、移动或删除一个项目时,我会使用 Mutation 组件的 update 属性来更新 Apollo Cache,例如:
import gql from "graphql-tag";
import { Mutation } from "react-apollo";
const ADD_ITEM = gql`
mutation AddItem(...
`;
...
<Mutation mutation={ADD_ITEM} variables={...} update={() => ...} />
但是,如果我想很好地更新我所有的缓存查询……我该如何完成呢?我是否必须在每个查询的更新函数中 cache.readQuery 和 cache.writeQuery ?这对我来说太疯狂了。
我迷路了。提前致谢。
【问题讨论】:
标签: reactjs graphql apollo react-apollo graphql-tag