【问题标题】:Get the data from GraphQL query in React从 React 中的 GraphQL 查询中获取数据
【发布时间】:2021-10-07 13:50:45
【问题描述】:

如果这是显而易见的事情,我很抱歉,我只是不明白。 我正在尝试从 GraphQL 服务器获取数据。我正在关注 Apollo 客户端上的文档,一切都很好。问题是我一直以承诺的形式获取数据,而不是真实的对象

const GET_DATA = gql`
  {
    category {
      name
      products {
        name
        inStock
      }
    }
  }
`;
const data = client
  .query({
    query: GET_DATA,
  })
  .then((result) => {
    return result;
  })
  .then((res) => res.data);
ReactDOM.render(
  <ApolloProvider client={client}>
    <React.StrictMode>
      <App data={data} />
    </React.StrictMode>
  </ApolloProvider>,
  document.getElementById("root")
);

我尝试链接另一个 .then() 方法并使用 .json() 方法转换响应,但没有成功。可能是因为 GraphQL 响应不同?

我会使用 useQuery() 钩子,但我被特别要求使用类组件

【问题讨论】:

    标签: javascript reactjs asynchronous graphql


    【解决方案1】:

    data const 变量将持有一个承诺,但您从 GraphQl 获得的结果应该是正确的,在第一个 .then 块中,您需要将结果保存在一个状态中,然后将该状态作为数据返回到你的应用组件。

    【讨论】:

    • 您好,感谢您的帮助。它是 index.js 文件,所以它没有状态。
    • 嗨!然后在 App 组件中查询数据并将结果保存到状态
    • 非常感谢! /
    猜你喜欢
    • 2020-01-20
    • 2019-02-06
    • 2021-03-01
    • 2018-11-22
    • 2020-06-20
    • 2019-12-09
    • 2022-01-25
    • 2019-05-04
    • 2021-08-08
    相关资源
    最近更新 更多