亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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 關注
  • 634 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號