【发布时间】:2020-10-23 18:26:53
【问题描述】:
我使用 Apollo 从 GraphQL 获取数据。当我尝试从useQuery 记录数据时,我首先得到两个未定义的日志,第二个是带有 gql 数据的日志。
当我尝试从例如 data.flats.title 获取数据时,我有未定义的信息,因此它是来自第一个 console.log() 的信息。如何获取数据并显示?
控制台屏幕:
import React from "react";
import { gql, useQuery } from "@apollo/client";
const myQuery = gql`
query {
flats {
Title
}
}
`;
const Test = () => {
const { data } = useQuery(myQuery);
console.log(data);
return <h2>GQL TEST</h2>;
};
export default Test;
【问题讨论】:
-
原因是
gql与useQuery的调用是异步的,取回结果需要时间。在您启动请求后的第一次渲染中,data是undefined。您可以使用useEffect挂钩仅在data中有内容时触发日志记录。
标签: javascript reactjs react-apollo gql