试图创造新的状态,但财产正在解决2

时间:2018-03-18 15:58:35

标签: react-redux

我是新的反应和redux,我正在尝试创建新状态,但似乎我没有正确更新状态。

这是我案例中的代码:

  case SUBMIT_NOTE:
    console.log(payload.note);
    return{ ...state, notes: state.notes.push(payload.note)};

payload.note解析为我想要推送到数组中的对象,但在redux-logger中它显示为state.notes = 2

不确定这是怎么发生的。我是传播运算符和纯函数的新手。

2 个答案:

答案 0 :(得分:0)

我将假设.push()以某种方式发生变异,或者只是返回数组中的索引数,并且不能用于状态操作。 .concat(note)工作了。

答案 1 :(得分:0)

const initial_state = {
    notes: []
}
export const reducer = (state = initialState, action) => {
    switch (action.type) {
        case SUBMIT_NOTE:
            console.log(payload.note);
            return {
                ...state,
                notes: payload.note
            }
    }
}

我们永远不会在redux中改变状态。只需将新值分配给对象,即可返回新状态。

希望这对你有帮助!