Reactjs 等待fetchQuery-反应悬念
我有一个通过Reactjs 等待fetchQuery-反应悬念,reactjs,use-effect,relay,react-suspense,Reactjs,Use Effect,Relay,React Suspense,我有一个通过渲染微调器的组件。当这个组件挂载时,会通过useffect钩子触发fetchQuery请求,如下所示: const VisualComponent = () => { ... const [foo, setFoo] = useState(null); useEffect(() => { const fetchFoo = async () => { await getFoo().then((someBoolean) => {
渲染微调器的组件。当这个组件挂载时,会通过useffect
钩子触发fetchQuery
请求,如下所示:
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>)
};
出于某种原因,仅当通过fetchFoo
触发getFoo
时,Suspense才会显示加载器,并在不等待fetchFoo
完成的情况下停止显示加载器
如何让悬念等待
fetchFoo
完成?getFoo
可以简化为返回fetchQuery(…)
,then和async/await不添加任何内容。(这不会解决你的问题)@KevinB太棒了!谢谢
const getFoo = async () => {
let result;
await fetchQuery(...)
.then((data) => {
result = data;
});
return result;
};