【问题标题】:Uncaught Invariant Violation: query option is required. You must specify your GraphQL document in the query optionUncaught Invariant Violation:需要查询选项。您必须在查询选项中指定您的 GraphQL 文档
【发布时间】:2021-05-14 17:45:37
【问题描述】:

我正在尝试从我的 react 应用程序中的 graphql 服务器获取国家/地区列表。 getAllCountry 查询在操场上运行良好,但每当我在应用程序上调用相同的查询时,我都会收到以下 错误

  1. “查询选项是必需的。您必须在查询选项中指定您的 GraphQL 文档”(错误如屏幕所示),
  1. “未捕获的不变违规:需要查询选项。您必须在查询选项中指定您的 GraphQL 文档。” (控制台出错)

我的代码如下所示:

// gql query inside gqlQueries.js

export const GET_ALL_COUNTRIES = gql`
  query getAllCountry {
    getAllCountry {
      name
      id
      countryCode
      currencyCode
    }
  }
`;

// calling the query

 import { queries as gql } from "./gqlQueries";

 const getAllCountries = () => {
    client
      .query({
        query: gql.GET_ALL_COUNTRIES
      })
      .then((res) => {
        console.log(res.data);
      })
      .catch((err) => console.log(err));
  };

我非常确定我的客户端配置正确,因为我的 gqlQueries.js 文件中有其他查询,除了这个特定的 (getAllCountry) 之外,它们都可以正常工作。

【问题讨论】:

  • 网络请求正文?
  • 你的意思是我应该发布网络请求正文的样子?

标签: reactjs graphql apollo apollo-client react-apollo


【解决方案1】:

您是否尝试过直接导入查询?例如


 import { GET_ALL_COUNTRIES } from "./gqlQueries";

 const getAllCountries = () => {
    client
      .query({
        query: GET_ALL_COUNTRIES
      })
      .then((res) => {
        console.log(res.data);
      })
      .catch((err) => console.log(err));
  };

我有一个类似的问题,它是 .query 方法中的语法。不确定您导入它的方式是否会导致问题(尽管如果您对其他查询执行了相同的操作,则可能不会)。

【讨论】:

  • 是的,经过大量谷歌搜索和寻求帮助后,我尝试直接导入查询,令人惊讶的是,它成功了。谢谢!
猜你喜欢
  • 2016-06-10
  • 2020-06-23
  • 1970-01-01
  • 2019-04-23
  • 2018-04-25
  • 2020-06-05
  • 2020-05-09
  • 2020-01-26
相关资源
最近更新 更多