我无法确定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 books
和updated books
都是相同的,尽管UI进行了更新,并且我猜测来自商店的新道具也将通过mapStateToProps
方法传递给此组件。 / p>
我想念什么?
答案 0 :(得分:1)
触发动作是同步的。但是 reducer 是异步的。您将在前后获得相同的值,因为它们都是在一个同步渲染周期中发生的。在reducer完成其工作之后,您的组件将按照您看到的进行更新。在这种情况下,您永远不会看到console.log
语句反映两种不同的状态。