我正在将redux用于我的本机应用程序。我要在用户执行某些操作后重新启动我的redux状态。
这是我的初始状态
initialState = {
a: "",
b: "",
arrayC: [
{
x : "xValue",
y : "",
z : ""
}
]
}
在用户执行某些操作后,状态会更改为类似的值
{
a: "ValueA",
b: "ValueB",
arrayC: [
{
x : "xValue",
y : "ValueY",
z : "ValueZ"
}
]
}
我有动作像以前一样将当前状态重置为初始状态,这是我要重置的动作
export const resetStateReducer = () => ({
type: RESET_STATE
});
在我的减速器中
case RESET_BOOKING_REDUCER:
return initialState;
一切正常,除了arrayC
。像这样
{
a: "",
b: "",
arrayC: [
{
x : "xValue",
y : "ValueY",
z : "ValueZ"
}
]
}
我该怎么办?是我的代码还是逻辑错误?
谢谢
编辑
这是我用于更新arrayC
值的操作代码
case ADD_ARRAY_C:
var { index, newObject} = action.payload;
var temp = state.arrayC;
temp[index] = { ...temp[index], ...newObject};
return {
...state,
arrayC: temp,
};
答案 0 :(得分:2)
您的初始状态很可能发生了变异。重置状态之前,请尝试控制台日志,然后查看显示的内容。
How do I correctly clone a JavaScript object?
请查看此内容,了解如何在化简器中为初始状态克隆对象。