Reactjs 使用查询钩子数据
我可以使用useQuery返回查询的数据,没有问题。我试图用以下查询检索用户,但在访问数据时。用户我的应用程序抛出一个错误,表示数据未索引Reactjs 使用查询钩子数据,reactjs,graphql,apollo,Reactjs,Graphql,Apollo,我可以使用useQuery返回查询的数据,没有问题。我试图用以下查询检索用户,但在访问数据时。用户我的应用程序抛出一个错误,表示数据未索引 const userQuery = gql` { user { id email } } `; export default NavWrapper = () => { const { loading, error, data } = useQuery(userQuery); console.log(data); if (load
const userQuery = gql`
{
user {
id
email
}
} `;
export default NavWrapper = () => {
const { loading, error, data } = useQuery(userQuery);
console.log(data);
if (loading) return <ActivityIndicator size="large"/>
if (!data) return <Login/>;
return <Navigator/>;
}
const userQuery=gql`
{
使用者{
身份证件
电子邮件
}
} `;
导出默认NavWrapper=()=>{
const{loading,error,data}=useQuery(userQuery);
控制台日志(数据);
如果(正在加载)返回
如果(!数据)返回;
返回;
}
上面的方法很好,可以在对象中检索用户,但是我需要根据实际用户而不是数据包装器来呈现登录comp。有什么想法吗?一定很简单 您可能具有不安全的属性访问权限,并且在查询完成之前试图使用
data.user
。基本上,您的代码是在假设数据始终存在的情况下运行的,而查询的性质是,存在一个无数据的开始未查询状态,然后是一个正在进行查询且无数据可用的加载状态,之后是数据可用的最终状态。你的代码应该为所有州准备好
要考虑这些情况,您应该使用安全属性访问,如:
const user=数据?data.user:null
或者,您可以使用安全属性访问库,如idx
:
const user=idx(数据,=>124;用户)| null
此外,您还需要确保任何使用用户数据的组件都已准备好,以应对用户不可用的情况
注意:
数据。用户
在您链接的代码中的任何位置都不会被引用。准确地知道您在哪里调用它会很有帮助(例如,在NavWrapper的主体与登录或其他地方)。这很有魅力-非常感谢您花时间详细解释!