在 apollo Gql 和 REACT 中执行查询后如何等待钩子?
how await a hook after execute a query in apollo Gql and REACT?
我有以下问题,我想执行一个需要ID用户的查询,但我已经从一个钩子中查询了ID用户,代码:
export default function useGetDatosPersonales() {
const [viewer, refetchViewer] = useViewer();
const {data} = useQuery(qUsuario,{
variables: {
user: viewer && viewer.id
}
});
const functionCall = (render) => {
if(data !== null && data !== undefined){
console.log(data.user.email);
}
}
return [functionCall,data];
}
查询 qUsuario 是:
query qUsuario($user:ID!){
user(id:$user){
email,
firstName,
lastName,
}
}
但是我第一次遇到以下错误:
[GraphQL error]: Variable "$user" of required type "ID!" was not
provided.
几毫秒后,查询成功了!
我怎么能告诉 apollo 在执行查询之前等待 id
您需要使用 useLazyQuery,因为 useQuery 不会永远等待。
或者您可以使用 async-await 语法直接使用客户端实例并在异步下完全控制。
我有以下问题,我想执行一个需要ID用户的查询,但我已经从一个钩子中查询了ID用户,代码:
export default function useGetDatosPersonales() {
const [viewer, refetchViewer] = useViewer();
const {data} = useQuery(qUsuario,{
variables: {
user: viewer && viewer.id
}
});
const functionCall = (render) => {
if(data !== null && data !== undefined){
console.log(data.user.email);
}
}
return [functionCall,data];
}
查询 qUsuario 是:
query qUsuario($user:ID!){
user(id:$user){
email,
firstName,
lastName,
}
}
但是我第一次遇到以下错误:
[GraphQL error]: Variable "$user" of required type "ID!" was not provided.
几毫秒后,查询成功了!
我怎么能告诉 apollo 在执行查询之前等待 id
您需要使用 useLazyQuery,因为 useQuery 不会永远等待。
或者您可以使用 async-await 语法直接使用客户端实例并在异步下完全控制。