dispatch 一个简单的 action ,仅仅只是通过reducer 去修改当前的 state 值。这样的操作是否是同步的?
比如:
function reducer(state = initialState, action) {
switch (action.type) {
case actionA:
return state => {
... state,
a: 1,
}
case actionB:
return state =>{
... state,
b: 1,
}
default:
return state;
}
}
// 比较粗糙的代码,但实际意义就是,dispatch actionA 我仅仅是修改state 中的a 值,而再没有其他的异步操作
dispatch(actionA);
// 同 actionA
dispatch(actionB);
想问这样简单的两个 action 触发是否是同步执行的,也就是先更新 a 值再更新 b 值?
从redux 源码中看, dispatch函数做的工作无非是自动执行一遍reducer函数,无论之前是异步还是同步, action 走到reducer里,都只是经过一个 “工厂”,重新加工 state 而已,所以我理解
dispatch(actionA);
// 这里能够直接拿到已经更新的 a 值 ?
state.a
想问上面这里,这里能够直接拿到已经更新的 a 值 ? 想确定一下这样的说法对不对?