React
我查看了redux的文档,文档中没有回调字段。但是在setState方法中有回调。dispatch方法不是负责setState函数吗?如何在redux的调度方法中进行回调?
setState
之所以有回调参数,是因为React状态更新是异步的。需要执行取决于更新状态的代码:
this.setState(..., () => {
console.log('state updated');
});
Redux的情况并非如此。dispatch
是同步的,因此在那里进行回调是没有意义的。预计在调用dispatch
之后立即发送一个操作:
dispatch(...);
console.log('store updated');
dispatch方法不是负责setState函数吗?
不是。Redux存储是React组件状态的替代方案。它内部不使用setState
。
使用此功能,您可以将事件侦听器添加到存储中,只要状态发生变化,就会触发该侦听器,因此您可以执行以下操作:
const callback = () => {
//check the store for your specific state change
//perform some action
}
store.subscribe(callback)