在成功执行查询之后,我可以使用阿波罗开发工具看到下面的(图像附件)。
但是,我无法使用ID (比如说2025年)直接查询filter
对象。我得到了一个Uncaught Invariant Violation: Can't find field filters on ROOT_QUERY object
。
下面是我想要问的问题:
client.cache.readQuery({
query: gql`
query Filter {
filters {
key
value
}
}
`
});
我还尝试了以下片段:
client.readFragment({
id: '2025',
fragment: gql`
fragment filter on filters {
id
key
value
}
`
});
但这给了我空头支票。
发布于 2020-02-25 21:42:50
您需要使用正在从缓存中查询的__typename
和id来指定对象。注意,filters
对象的id是阿波罗缓存中的filters:[id]
,这是访问缓存中的片段[__typename]:[key]
所需的格式。您可以阅读有关在文档中分配缓存标识符的更多信息。
您可以使用以下方法访问您的片段:
const filter = client.readFragment({
fragment: gql`
fragment filter on filters {
id
key
value
}
`,
fragmentName: 'filter',
id: 'filter:2025'
})
https://stackoverflow.com/questions/60390419
复制相似问题