我正在尝试从已经存在的缓存中请求数据。我已经检查了Apollo Chrome插件的使用情况。
const inCache = this.apollo.getClient().readQuery({
query: gql`
query {
foo(id: "foo0") {
id
bar {
id
}
}
}
`
});
错误看起来像这样:
MyHtml.html:20 ERROR Invariant Violation: Can't find field id on object {
"barSubResourses": [
{
"type": "id",
"generated": false,
"id": "SubResourse:subResourse3",
"typename": "SubResourse"
},
{
"type": "id",
"generated": false,
"id": "SubResourse:subResourse2",
"typename": "SubResourse"
}
],
"__typename": "Bar"
}.
如果我不包括子资源,则从缓存读取效果很好 有人知道吗?
答案 0 :(得分:0)
最后,我找到了问题的根源。我的查询中有一个查询没有Bar
的ID。我仔细检查了chrome插件是否仍然具有该酒吧的ID数据。看起来不匹配。
无论如何,对于每个查询中的每个实体,似乎都有一个经验法则来询问id
。