如何在redux中使用DIspatch中的回调



我查看了redux的文档,文档中没有回调字段。但是在setState方法中有回调。dispatch方法不是负责setState函数吗?如何在redux的调度方法中进行回调?

ReactsetState之所以有回调参数,是因为React状态更新是异步的。需要执行取决于更新状态的代码:
this.setState(..., () => {
console.log('state updated');
});

Redux的情况并非如此。dispatch是同步的,因此在那里进行回调是没有意义的。预计在调用dispatch之后立即发送一个操作:

dispatch(...);
console.log('store updated');

dispatch方法不是负责setState函数吗?

不是。Redux存储是React组件状态的替代方案。它内部不使用setState

redux中的dispatch方法不能有回调。但是,Redux为您提供store.subscribe((.

使用此功能,您可以将事件侦听器添加到存储中,只要状态发生变化,就会触发该侦听器,因此您可以执行以下操作:

const callback = () => {
//check the store for your specific state change
//perform some action
}
store.subscribe(callback) 

最新更新