如何修复:Angular Apollo-Client 返回一个数组而不是一个 id

Posted

技术标签:

【中文标题】如何修复:Angular Apollo-Client 返回一个数组而不是一个 id【英文标题】:How to fix: Angular Apollo-Client returning an array instead of an id 【发布时间】:2020-01-14 00:38:38 【问题描述】:

我在 Angular 应用程序中使用的 apollo 客户端有问题。我正在调用一个 graphQL-Query,它返回以下内容:

account: id: 1
accountId: 1
contact: id: 1
contactId: 1
id: 23
notes: null
resultId: null
stepId: 1
subject: "testsubject"

我在浏览器开发者工具中看到了这个结果(调用结果预览) 到目前为止一切顺利,但 appolo-client 会返回:

account: id: 1
accountId: 1
contact: id: 1
contactId: 1
id: id: …, notes: null, stepId: 1, subject: "testsubject", resultId: null, …
notes: null
resultId: null
stepId: 1
subject: "testsubject"

我在网上搜索过这个问题,但似乎我是唯一一个有这个问题的人,尝试了几乎类似问题的解决方案并没有解决任何问题。

禁用缓存并没有解决它

      this.apollo.create(
        link: from([this.logoutLink, this.authMiddleware, graphQLDataLink]),
        cache:  new InMemoryCache(
          addTypename: false
        ),
        defaultOptions: 
          query: 
            fetchPolicy: 'no-cache'
          
        
      

【问题讨论】:

【参考方案1】:

我发现了问题。我在一种方法中调用了 2 个查询,并隐藏了结果。这是简单的方法:

callGQLQuery(query1).then(result => ...一些代码 callGQLQuery(query2).then(result => => 这里的结果有我描述的这个错误,将第二个结果更改为 result2 解决了 ) )

【讨论】:

以上是关于如何修复:Angular Apollo-Client 返回一个数组而不是一个 id的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Ionic 5 中的@ionic/angular 错误修复成员事件

在Angular中更改页面时如何修复yyyy不是功能?

在Angular中将项目从v10迁移到v12后如何修复错误[关闭]

如何在生产版本上升级 Angular 7 后修复“错误:模板解析错误:找不到管道‘异步’”

如何修复错误在 Angular 2 clickeditor 中找不到名称“对象”

使用 jasmine / karma 进行 Angular 4 单元测试和 http post mocking - 如何修复