使用GraphQL Apollo Client,如何将@Client字段设置为存储在缓存对象中?

使用GraphQL Apollo Client,如何将@Client字段设置为存储在缓存对象中?,graphql,apollo,react-apollo,Graphql,Apollo,React Apollo,我有一个Apollo查询集,如下所示 query { speakers { id name checkBoxField @client } } 我有一个字段策略集,如下所示: export const genericBoolean = cache.makeVar(false); typePolicies: { Speaker: { fields: { checkBoxField: { read(chec

我有一个Apollo查询集,如下所示

query { 
  speakers {
    id
    name
    checkBoxField @client
  }
}
我有一个字段策略集,如下所示:

export const genericBoolean = cache.makeVar(false);

typePolicies: {
   Speaker: {
      fields: {
        checkBoxField: {
           read(checkBoxField = false) {
             return genericBoolean === true ? "true" : "false";
           ...
我在我的页面上有一个按钮,我在其中使用定义的useQuery,该按钮执行代码:

onClick : genericBoolean(true)

当我转储(JSON.stringify)从useQuery返回的数据时,所有行的checkBoxField都会按预期更改为true,但在我的Apollo缓存中(从chrome扩展中可以看到),没有为checkBoxField存储任何字段。我希望有这样的缓存,这样我就可以遍历缓存并获得每行的集值。

根据Apollo文档,您可以使用反应变量或Apollo客户端缓存来存储本地状态:

上面的例子是使用反应变量。要将数据存储在缓存中,您需要使用
writeQuery
writeFragment