首页 > 解决方案 > 在异步功能之前反应 usestate setvalue

问题描述

第一次尝试反应上下文 api。这是我使用上下文 api 的反应代码

  const [valChanged, setValChanged] = useState(false);

  async function modalSave() {
    await setValChanged(true);// STEP 1
    await onEventSave();// This involves saving values to backend (async) STEP 2
  }

onEventSave() 异步操作依赖于上一步的 valChanged 值,因此必须在调用 onEventSave 之前将其设置为 true。(在调用 STEP 2 之前,必须完成步骤 1 并将其值设置为 true)

这里有什么遗漏吗?

标签: javascriptreactjsasynchronousasync-awaitreact-context

解决方案


如果您使用钩子,则没有setState回调函数,因此您可以使用 来执行此操作useEffect,如下所示:

useEffect(() => {
    onEventSave();
},[valChanged]);

valChanged每当更改时都会调用上述函数


推荐阅读