连续更新两次store数据,第二次会拿到最初始的store
比如
initState ={
a:'',
b:''
};
dispatch(setState(a,1))
dispatch(setState(b,1))
最终获得的state结果是
{
a:'',
b:1
}
如果换成
setTimeout(()=>{
dispatch(setState(b,1))
},0)
能拿到正确值了
但是不想代码中存在定时器
reducer如下
const initState = {
a: '',
b: ''
}
function test (state = initState, action) {
switch (action.type) {
case 'TEST_SET':
return Object.assign({}, state, { [action.key]: action.value });
default:
return state;
}
}
有解决的办法吗
应该是你的reducer里面default:
return initState,正确的是
return state