【问题标题】:GraphQL query works fine for one field but errors on the second?GraphQL 查询在一个字段上运行良好,但在第二个字段上出错?
【发布时间】:2018-07-02 11:07:18
【问题描述】:

我正在使用 Apollo Client 2。我得到的结果对我来说似乎很奇怪,但我是 GraphQL 的新手。

我设置了一个包含 2 个字段的简单架构。当我查询其中一个字段时,它可以找到但另一个返回错误:

架构:

type Query {
    hi: String
    groups: [Group]
}

type Group {
    name: String
    test: String
}

解析器:

Query: {
    hi() {
        return 'howdy';
    },
    groups() {
        // Here I'm mocking a database call 
        return [{ name: '1', test: 'test 1' }, { name: '2', test: 'test 2' }];
    },
},

在 GraphiQL 中,此查询有效:

{
  groups {
    name
  }
}

结果:

{
 "data": {
    "groups": [
      {
        "name": "1"
      },
      {
        "name": "2"
      }
    ]
  }
}

但是当我查询测试字段时:

{
  groups {
    test
  }
}

我收到一个错误:

{
  "errors": [
    {
      "message": "Cannot query field \"test\" on type \"Group\".",
      "locations": [
        {
          "line": 3,
          "column": 5
        }
      ]
    }
  ]
}

【问题讨论】:

  • 您打印的结果似乎不是来自您的解析器。在您的解析器中,您返回名称:“1”,但结果显示 Kickboxing。如果不只是为了这个例子,也许你没有调用同一个服务器? ..第二个来源没有test 字段?
  • 对不起,这是一个错误。我开始使用实际的数据库调用,然后在调试时模拟调用。我忘了更新我的问题,但我现在已经完成了。
  • 您是否尝试刷新 GraphiQL 页面?

标签: graphql apollo-client


【解决方案1】:

我只需要刷新 GraphiQL 页面。呵呵!

更新 - 我又遇到了这个问题,这次不得不在隐身窗口中运行 graphiql。即使您刷新,浏览器缓存似乎也是一个问题。

更新 2 - 这可能是 Meteor 特定的问题,但我需要进一步编辑一个 JavaScript 文件,以便在我的解析器和架构中进行更改以获取。似乎有很多缓存类型的问题,但我不知道这是 Meteor、Apollo 还是 GraphQL。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-21
    • 1970-01-01
    • 2020-12-11
    • 2020-11-21
    • 2023-04-09
    • 2021-04-10
    • 2020-02-25
    • 1970-01-01
    相关资源
    最近更新 更多