Reactjs 更改reducer中的对象键属性
我有两个来自服务器的值-旧值和新值。在我的redux存储中,我需要将对象键从旧值更改为新值(编辑键值),并将项目数组从旧对象键附加到替换的新对象键。最好的方法是什么 我试过这样做:Reactjs 更改reducer中的对象键属性,reactjs,react-redux,Reactjs,React Redux,我有两个来自服务器的值-旧值和新值。在我的redux存储中,我需要将对象键从旧值更改为新值(编辑键值),并将项目数组从旧对象键附加到替换的新对象键。最好的方法是什么 我试过这样做: const handleEditFilter = (state, { payload }) => { const { newValue, oldValue } = payload; return { ...state, regions: { ...state.regions,
const handleEditFilter = (state, { payload }) => {
const { newValue, oldValue } = payload;
return {
...state,
regions: {
...state.regions,
list: {
...state.regions.list,
[newValue]: [...state.regions.list[oldValue]],
},
},
};
};
但它只是使用旧数组中的数组项创建一个新对象。如何实际替换对象的键名并从旧键附加项?首先,复制内部列表:
const list = { ...state.regions.list };
然后替换该值:
list[newValue] = list[oldValue];
delete list[oldValue];
然后更新状态:
return {
...state,
regions: {
...state.regions,
list
}
};
要在嵌套对象上执行不可变操作,我更喜欢使用库,例如,它会使操作更具可读性(一系列getIn
、unsetIn
和setIn
)