簡體   English   中英

React-Redux:狀態已更新但未復制

[英]React-Redux: State updated but not copied

在我的減速器中,我無法理解為什么我的狀態返回更新但未被復制。

const loginReducer = (state = {}, action) => {

    let newstate = JSON.parse(JSON.stringify(state))
    const { type, payload } = action

    switch(type) {
        case constant.LOGIN_SUCCESS:
            //
            newstate = { login: [{ user: payload.user, password: payload.password, logged: true }] }
            console.log(newstate.login)
            break;
        default:
            break;
    }

    return newstate

}

我想當然是一件簡單的事情,但我無法弄清楚

似乎您在此行中完全重新分配了newstate

newstate = { login: [{ user: payload.user, password: payload.password, logged: true }] }

如果要保持當前值處於state還需要包括它們:

newstate = { ...newstate, login: [{ user: payload.user, password: payload.password, logged: true }] }

上面使用了對象傳播,您的babel配置中可能有也可能沒有。 您還可以使用Object.assign來實現相同的目的:

newstate = Object.assign(newstate, { login: [{ user: payload.user, password: payload.password, logged: true }] });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM