繁体   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