为了账号安全,请及时绑定邮箱和手机立即绑定

redux如何连续两次更新store

redux如何连续两次更新store

江户川乱折腾 2019-03-13 18:15:18
连续更新两次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;    }}有解决的办法吗
查看完整描述

2 回答

?
慕的地10843

TA贡献1785条经验 获得超8个赞

应该是你的reducer里面default:
return initState,正确的是
return state

查看完整回答
反对 回复 2019-03-26
?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

react中setState是异步的。不过setState提供了一个回调函数:

你可以这样使用:


setState({

    a:1

},function(){

    console.log('a设置完成了');

    //现在开始设置b

    setState({

        b:1

    })

})


查看完整回答
反对 回复 2019-03-26
  • 2 回答
  • 0 关注
  • 676 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号