Apollo useQuery 或 client.query React 无法记录值
Apollo useQuery or client.query React failing to log values
我正在尝试使用 useQuery 挂钩从 graphql 响应中循环对象数组。
const { loading, error, data } = useQuery(GET_FOLDERS);
如果我控制日志数据然后我得到这个
但是如果我要控制台日志 data.Folders[0].id 我得到 TypeError: data is undefined 我已经尝试手动创建一个具有相同值数组的对象并且我可以很好地控制台它如果我从使用 useQuery 更改为使用 apolloBoost client.query({query: GET_FOLDERS})
然后它也可以正常工作我只是认为有人可以指出我正确的方向,除非它是必要的我需要显示我的所有代码。谢谢
useQuery
returns 异步结果的事实意味着数据在初始渲染中不可用,因此当您尝试访问特定的嵌套 属性 时它会抛出你出错了
解决方案是依赖这里的加载状态,只有在 属性 真正准备就绪后才访问
例
const Comp = () = {
const { loading, error, data } = useQuery(GET_FOLDERS);
if(loading) {
return <div>Loading...</div>
}
console.log(data.Folders[0].id )
...
}
我正在尝试使用 useQuery 挂钩从 graphql 响应中循环对象数组。
const { loading, error, data } = useQuery(GET_FOLDERS);
如果我控制日志数据然后我得到这个
但是如果我要控制台日志 data.Folders[0].id 我得到 TypeError: data is undefined 我已经尝试手动创建一个具有相同值数组的对象并且我可以很好地控制台它如果我从使用 useQuery 更改为使用 apolloBoost client.query({query: GET_FOLDERS})
然后它也可以正常工作我只是认为有人可以指出我正确的方向,除非它是必要的我需要显示我的所有代码。谢谢
useQuery
returns 异步结果的事实意味着数据在初始渲染中不可用,因此当您尝试访问特定的嵌套 属性 时它会抛出你出错了
解决方案是依赖这里的加载状态,只有在 属性 真正准备就绪后才访问
例
const Comp = () = {
const { loading, error, data } = useQuery(GET_FOLDERS);
if(loading) {
return <div>Loading...</div>
}
console.log(data.Folders[0].id )
...
}