繁体   English   中英

GraphQL angular 阿波罗客户端。 从缓存中读取抛出错误,但对服务器的相同查询工作正常

[英]GraphQL angular apollo-client. Read from cache throw error but the same query to the server works fine

我正在尝试从已经存在的缓存中请求数据。 我检查了 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"
}.

如果我不包含子资源,从缓存中读取工作正常有人知道吗?

最后,我找到了问题的根源。 在我的查询中有一个没有Bar id 的查询。 我已经仔细检查了 chrome 插件仍然有条形的 id 数据。 它看起来像一个不匹配。 无论如何,似乎有一条经验法则可以为每个查询中的每个实体询问id

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM