在react hooks setState完成之后,如何解决promise?

时间:2019-10-23 09:54:23

标签: reactjs promise react-hooks setstate

我需要在setState完成后解决承诺,但在反应挂钩中setState(useState)没有回调函数。

此代码的反钩版本:

handleBeforeGetContent = () => {
    return new Promise((resolve, reject) => {
        this.setState({ key: 'updatedValue' }, () => resolve());
    });
}

2 个答案:

答案 0 :(得分:2)

您可以使用useEffect来运行每个状态更改,而绕过要观察的所需状态作为useEffect中的参数。

(default(double?)

答案 1 :(得分:2)

您可以在useEffect内使用异步函数,如下所示。

  const [isLoadingComplete, setLoadingComplete] = React.useState(false);


  React.useEffect(() => {
        async function loadDataAsync() {
          try {    
            await loadAsyncSomething();
          } catch (e) {
            console.warn(e);
          } finally {
            setLoadingComplete(true);
          }
        }

        loadDataAsync();
      }, []);