使用Redux操作更新商店

时间:2018-08-22 06:11:36

标签: redux reducers mutate

我需要使用reducer更新应用程序的存储。但是我想使其动态化,而无需编写用于在同一级别更新商店的不同操作。

可以说我的商店下面是这个样子……

ELF Header

所有第一个,第二个和第三个都处于nonPersistedState的同一级别。

现在,如果要更新以上三个中的任何一个,以下是我的操作和减速器功能

const store  = { nonPersistedState : {first :"", second : "", third : ""} }

现在,我在这里先创建状态的副本,然后直接对其进行变异,然后再次返回状态的副本。

所以我的问题是,我要对商店进行变更,还是可以这样做?但是,我在控制台中没有收到任何警告或错误消息,并且表单正在重新呈现。请提供输入。

1 个答案:

答案 0 :(得分:1)

您的操作方式是正确的。使用散布运算符创建新状态甚至是referenced in the Redux doc

但是,您可以在使用扩展运算符的同时直接分配新属性,从而略微缩短代码长度。看起来像这样:

const nonPersistedState = (state = initialState, action) => {
    switch (action.type) {
        case 'UPDATE_MODEL':
            return {
                ...state,
                [action.model] : action.value
            };
        default:
            return state;
    }
};