我有一个组件,它通过<Suspense />
. 当这个组件挂载时,fetchQuery
会通过useEffect
钩子触发请求,如下所示:
const VisualComponent = () => {
...
const [foo, setFoo] = useState(null);
useEffect(() => {
const fetchFoo = async () => {
await getFoo().then((someBoolean) => {
if (someBoolean && someOtherCondition) {
setFoo(true);
}
});
}
fetchFoo();
});
return(<Suspense fallback={SomeLoader} />...</Suspense>)
};
并getFoo()
调用fetchQuery
:
const getFoo = async () => {
let result;
await fetchQuery(...)
.then((data) => {
result = data;
});
return result;
};
出于某种原因,Suspense 仅在getFoo
被触发时显示加载器,fetchFoo
并停止显示加载器而不等待fetchFoo
完成。
如何让 Suspense 等待fetchFoo
完成?