使用GraphQL Apollo Client,如何将@Client字段设置为存储在缓存对象中?
我有一个Apollo查询集,如下所示使用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
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
: