在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ redux如何連續(xù)兩次更新store

redux如何連續(xù)兩次更新store

連續(xù)更新兩次store數(shù)據(jù),第二次會(huì)拿到最初始的store
比如

initState ={
    a:'',
    b:''
};
dispatch(setState(a,1))
dispatch(setState(b,1))

最終獲得的state結(jié)果是

{
    a:'',
    b:1
}

如果換成


setTimeout(()=>{
    dispatch(setState(b,1))
},0)

能拿到正確值了

但是不想代碼中存在定時(shí)器

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;
    }
}

有解決的辦法嗎

回答
編輯回答
有點(diǎn)壞

react中setState是異步的。不過setState提供了一個(gè)回調(diào)函數(shù):
你可以這樣使用:

setState({
    a:1
},function(){
    console.log('a設(shè)置完成了');
    //現(xiàn)在開始設(shè)置b
    setState({
        b:1
    })
})
2017年2月25日 08:29
編輯回答
鹿惑

應(yīng)該是你的reducer里面default:
return initState,正確的是
return state

2018年3月11日 21:35