成功执行查询后,我可以使用Apollo Dev Tools查看以下内容(图像)。
但是,我无法直接使用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
}
`
});
但是那让我没有了。
答案 0 :(得分:3)
您需要使用__typename
和要从缓存中查询的ID指定对象。请注意,filters
对象的ID是Apollo缓存内的filters:[id]
,这是访问缓存中的片段[__typename]:[key]
所需要的格式。您可以在docs中了解有关分配缓存标识符的更多信息。
您可以使用以下内容访问片段:
const filter = client.readFragment({
fragment: gql`
fragment filter on filters {
id
key
value
}
`,
fragmentName: 'filter',
id: 'filter:2025'
})