GraphQL 角度阿波罗客户端。从缓存中读取抛出错误,但对服务器的相同查询工作正常
Posted
技术标签:
【中文标题】GraphQL 角度阿波罗客户端。从缓存中读取抛出错误,但对服务器的相同查询工作正常【英文标题】:GraphQL angular apollo-client. Read from cache throw error but the same query to the server works fine 【发布时间】:2020-01-21 07:36:33 【问题描述】:我正在尝试从已经存在的缓存中请求数据。我已经检查了 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"
.
如果我不包含子资源,则从缓存中读取工作正常 有人知道吗?
【问题讨论】:
【参考方案1】:终于,我找到了问题的根源。在我的查询中有一个没有Bar
id 的查询。我已经仔细检查了 chrome 插件仍然有条形的 id 数据。它看起来像一个不匹配。
无论如何,对于每个查询中的每个实体,似乎都有一条经验法则来询问 id
。
【讨论】:
以上是关于GraphQL 角度阿波罗客户端。从缓存中读取抛出错误,但对服务器的相同查询工作正常的主要内容,如果未能解决你的问题,请参考以下文章
表达 http:graphql 突变上的 500 错误以在反应中从阿波罗客户端创建用户