对redux存储的更改是否同步发生?
是否保证在time store.dispatch返回时,状态已经更改?如果是这样的话,那么为什么不作为发送呼叫的结果返回newState呢对redux存储的更改是否同步发生?,redux,react-redux,flux,Redux,React Redux,Flux,是否保证在time store.dispatch返回时,状态已经更改?如果是这样的话,那么为什么不作为发送呼叫的结果返回newState呢 store.dispatch( action1() ); store.dispatch( action2() ); 例如,我将在action1中登录用户,然后我想启动另一个操作,该操作将使用LogeIn用户信息进一步更改状态。所以我想确保action2不会启动,除非action1已经成功地更改了状态 那么,通过time store.dispatch返回,是
store.dispatch( action1() );
store.dispatch( action2() );
例如,我将在action1中登录用户,然后我想启动另一个操作,该操作将使用LogeIn用户信息进一步更改状态。所以我想确保action2不会启动,除非action1已经成功地更改了状态
那么,通过time store.dispatch返回,是否保证状态已经更改
减速器示例:
function reducer(state, action){
// please ignore that i will mutate state, just for sake of simplicity of example.
if(action.type==='ACTION1'){
state.user_id = action.payload;
return state;
}
if(action.type==='ACTION1'){
state.value2 = state.user_id * action.whatEver;
return state;
}
return state;
}
我目前的保护措施是,我使用React.component监视对用户id的更改,然后启动action2,但如果Redux操作是同步的,那么我可以在action1之后直接启动action2,并简化我的样板文件。是的,默认情况下
dispatch()
是100%同步的。中间件可以截获动作并可能延迟动作,或者以其他异步方式修改行为。但是,除此之外,在dispatch
返回时,可以保证根还原程序已经完成运行,当前状态值已经交换,并且已经通知订阅者。总是这样吗?