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;
};