Redux状态数组不会重新启动为其初始值

时间:2018-12-05 02:08:06

标签: reactjs react-native redux react-redux

我正在将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,
            };

1 个答案:

答案 0 :(得分:2)

您的初始状态很可能发生了变异。重置状态之前,请尝试控制台日志,然后查看显示的内容。

How do I correctly clone a JavaScript object?

请查看此内容,了解如何在化简器中为初始状态克隆对象。