【发布时间】:2020-03-14 10:42:25
【问题描述】:
我正在使用 Apollo 客户端,为了获取查询,我正在使用来自包 @apollo/react-hooks 的 useQuery。
我想完成以下工作:
步骤列表:
第 1 步:获取查询 stage
const GetStage = useQuery(confirmStageQuery, {
variables: {
input: {
id: getId.id
}
}
});
第 2 步:根据我们从 GetStage 获得的回复,我们希望在 2 个单独的查询之间切换
if (!GetStage.loading && GetStage.data.getGame.stage === "Created") {
Details = useQuery(Query1, {
variables: {
input: {
id: getId.id
}
}
});
} else if (!GetStage.loading && GetStage.data.getGame.stage === "Confirmed") {
Details = useQuery(Query2, {
variables: {
input: {
id: getId.id
}
}
});
}
第 3 步:此外,每次页面加载时,我都会重新获取数据。
useEffect(() => {
//Fetch for Change in the Stage
GetStage.refetch();
//Fetch for Change in the Object
if (Details) {
Details.refetch();
if (Details.data) {
setDetails(Details.data.getGame);
}
}
});
有问题?
比上一次渲染时渲染了更多的钩子。
Details.data 未定义
那么我们如何在 Apollo Client 中调用多个异步查询呢?
【问题讨论】:
标签: javascript asynchronous react-hooks react-apollo apollo-client