我正在为我的 React Native 应用程序使用 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,
};
我遇到了同样的问题,我发现的唯一方法是lodash
cloneDeep
:
case RESET_BOOKING_REDUCER:
return {
...state,
arrayC: _.cloneDeep(initialState.arrayC)
}