首页 文章

对redux存储的更改是否同步发生? [重复]

提问于
浏览
0

这个问题在这里已有答案:

si它保证按时间store.dispatch返回,状态已经改变了?如果是这种情况,那么为什么不通过调度调用返回newState?

store.dispatch( action1() );
store.dispatch( action2() );

例如,我将在action1中登录用户,然后我想触发另一个将使用LOGEDIN用户信息进一步更改状态的操作 . 所以我想确保action2不会触发,除非action1已成功更改状态 .

所以,通过时间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监视对user_id的更改然后我触发action2,但如果Redux Actions是同步的,那么我可以在action1之后直接触发action2并且只是减少我的样板 .

1 回答

  • 2

    是的,默认情况下 dispatch() 是100%同步的 . 中间件可以拦截操作并可能以其他异步方式延迟它们或修改行为 . 但是,除此之外,在 dispatch 返回时,保证根减速器已完成运行,当前状态值已被换出,并且已通知订户 .

相关问题