关于Redux中的操作的困惑

时间:2019-02-08 17:19:29

标签: reactjs redux react-redux

我无法确定Redux动作是同步还是异步。考虑一下:

addBook () => {
  console.log( "current books:  ",this.props.books );

  const book = {
      id: 3,
      title: "Percy Jackson"
  };

  this.props.addBook(book); // firing off a new action [ is it synchronous or asynchronous ]

  console.log( "updated books:  ",this.props.books ); // shouldn't these be new props
}

从上方看,current booksupdated books都是相同的,尽管UI进行了更新,并且我猜测来自商店的新道具也将通过mapStateToProps方法传递给此组件。 / p>

我想念什么?

1 个答案:

答案 0 :(得分:1)

触发动作是同步的。但是 reducer 是异步的。您将在前后获得相同的值,因为它们都是在一个同步渲染周期中发生的。在reducer完成其工作之后,您的组件将按照您看到的进行更新。在这种情况下,您永远不会看到console.log语句反映两种不同的状态。