从 React 中的 GraphQL 查询获取数据

Get the data from GraphQL query in React

很抱歉,如果这是显而易见的事情,我只是不明白。 我正在尝试从 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() 钩子,但我被特别要求使用 Class 组件

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