我需要使用reducer更新应用程序的存储。但是我想使其动态化,而无需编写用于在同一级别更新商店的不同操作。
可以说我的商店下面是这个样子……
ELF Header
所有第一个,第二个和第三个都处于nonPersistedState的同一级别。
现在,如果要更新以上三个中的任何一个,以下是我的操作和减速器功能
const store = { nonPersistedState : {first :"", second : "", third : ""} }
现在,我在这里先创建状态的副本,然后直接对其进行变异,然后再次返回状态的副本。
所以我的问题是,我要对商店进行变更,还是可以这样做?但是,我在控制台中没有收到任何警告或错误消息,并且表单正在重新呈现。请提供输入。
答案 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;
}
};