我是新的反应和redux,我正在尝试创建新状态,但似乎我没有正确更新状态。
这是我案例中的代码:
case SUBMIT_NOTE:
console.log(payload.note);
return{ ...state, notes: state.notes.push(payload.note)};
payload.note
解析为我想要推送到数组中的对象,但在redux-logger中它显示为state.notes = 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中改变状态。只需将新值分配给对象,即可返回新状态。
希望这对你有帮助!