当前位置: 首页 > 知识库问答 >
问题:

为什么出现错误:无法查询类型“query”上的字段xx?

龙俊美
2023-03-14

虽然我在GraphiQL上测试成功后从GraphiQL工具中复制并粘贴了GraphiQL查询,但当我在reactJS应用程序内的Apollo客户端中尝试该查询时,该查询返回了一个错误:

[GraphQL error]: Message: Cannot query field "allStudents" on type "Query"., Location: [object Object], Path: undefined

下面是我的实现:

const link = createHttpLink({
  uri: 'http://localhost:8000/graphql',
  fetchOptions: { method: "POST" }
});

const client = new ApolloClient({
  link: link 
});

const GET_STUDENTS = gql`
query getStudents($schoolID: Int!){
  allStudents(schoolId: $schoolID){
    pickUpLat
    pickUpLng
  }
}
`;

client
  .query({
    query: GET_STUDENTS,
    variables: { schoolID: 1 }
  })
  .then(result => console.log(result));

会有什么问题吗?以下是我预期的正确回应:

{
  "data": {
    "allStudents": [
      {
        "pickUpLat": 31.9752942479727,
        "pickUpLng": 35.8438429235775
      },
      {
        "pickUpLat": 31.9754545979993,
        "pickUpLng": 35.8437478537235
      }
    ]
  }
}

{"operationName":"getStudents","variables":{"schoolID":1},"query":"query getStudents($schoolID: Int) {\n  allStudents(schoolId: $schoolID) {\n    pickUpLat\n    pickUpLng\n    __typename\n  }\n}\n"}
{"query":"query getStudents($schoolID: Int!){\n  allStudents(schoolId: $schoolID){\n    pickUpLat\n    pickUpLng\n  }\n}","variables":{"schoolID":1},"operationName":"getStudents"}

所以,他们几乎一模一样,有什么想法吗?

共有1个答案

章涵容
2023-03-14

在我的例子中,我定义了一个不需要任何参数的查询,它将返回一个对象数组:

myBasicQuery: [BasicAnswer]

type BasicAnswer {
  name String
  phone String
}

当我声明类型\“BasicAnswer\”上的字段\“BasicAnswer\”时,我得到了一个错误:无法查询它:

query myBasicQuery {
  BasicAnswer {
      name
      phone
  }
}

只保留BasicAnswer的字段就可以解决这个问题:

query myBasicQuery {
    name
    phone
}

 类似资料:
  • 问题内容: 我正在尝试在BigQuery上使用标准SQL方言(即不是传统SQL)运行查询。我的查询是: 但是要继续得到错误 有人知道正确的语法吗? 问题答案: 如果您正在寻找所有推荐人,请尝试

  • 问题内容: 我正在大学学习基础知识,并且希望对Eclipse中的以下错误有所帮助:“对于类型ShopCLI,未定义方法getCost()”& 这是我的代码 问题答案: 方法是在订单类中定义的,而不是在类中定义的。所以你的代码: 应该改为

  • 错误:第 1 行的解析错误:函数搜索(sour ^ 期望“字符串”、“数字”、“空”、“真”、“假”、“{”、“[”,得到“未定义” 代码:

  • 问题内容: 鉴于: 我得到: 我还会收到关于第6行的“未经检查的演员表”警告。为什么?该是 不是 一个泛型类型- 它只是一个普通的。如何通过检查和强制转换为实例来正确实现? 注意:显然,此代码示例是我的实际代码的简化版本。真正的类和都大得多,是一个内部类的其实现中使用。 仅供参考:实数确实使用了通用参数。 问题答案: o不是通用类型-只是普通对象。 那不是问题。问题…和两个编译错误的根本原因…是泛

  • 我有一个非常简单的方法,可以将动态变量转换为int,如下所示: 我有这个模型类: 现在,当我尝试使用该方法将上述类的属性从dynamic转换为int时: 我得到类型'int'不是类型'String'错误的子类型。我尝试将属性从动态更改为String,仍然是相同的错误。 我还尝试对json执行以下操作: 也抛出类似错误。 请问如何将属性转换为整数?。

  • 我正在尝试使用命令,但收到的回报是错误: 而且我很确定数据库中并不存在该表,因为数据库完全是空的和干净的。 我使用的是PHP 7.3和MySQL 8.0.18社区版,它们都是在Windows Server 2019上由AMPPS运行的。我用的是Laravel 8