使用纯 React 链接异步函数?

Chaining async functions with pure React?

我想知道是否有一种方法可以仅将异步函数与 React 链接起来。我知道如何用 Redux 做到这一点,但想知道是否有只使用 React 的方法。

基本上,我想调用函数 computerMove(),但只有在 this.state.myMove 设置为 false 之后。像这样:

this.setState({ myTurn: false }).then(() => {
            this.computerMove();
          });

(上面的代码不起作用,但这就是我想要做的)。

有什么建议吗?

看看:https://facebook.github.io/react/docs/react-component.html#componentdidupdate,这就是你想要的。它像上次渲染之前一样传递道具和状态。检查 myTurn 值是否已更改。

componentDidUpdate(prevProps, prevState) {
  if (!this.state.myTurn && this.state.myTurn != prevState.myTurn) {
    this.computerMove();
  }
}

setState 是异步的并且能够触发回调:

this.setState({ myTurn: false }, this.computerMove);