【问题标题】:Chaining async functions with pure React?用纯 React 链接异步函数?
【发布时间】:2017-05-27 14:33:13
【问题描述】:

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

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

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

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

有什么建议吗?

【问题讨论】:

  • 为什么不将回调传递给setState

标签: reactjs asynchronous method-chaining


【解决方案1】:

setState 是异步的,可以触发回调:

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

【讨论】:

    【解决方案2】:

    看看: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();
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2017-02-26
      • 2019-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多