Reactjs 更改reducer中的对象键属性

Reactjs 更改reducer中的对象键属性,reactjs,react-redux,Reactjs,React Redux,我有两个来自服务器的值-旧值和新值。在我的redux存储中,我需要将对象键从旧值更改为新值(编辑键值),并将项目数组从旧对象键附加到替换的新对象键。最好的方法是什么 我试过这样做: const handleEditFilter = (state, { payload }) => { const { newValue, oldValue } = payload; return { ...state, regions: { ...state.regions,

我有两个来自服务器的值-旧值和新值。在我的redux存储中,我需要将对象键从旧值更改为新值(编辑键值),并将项目数组从旧对象键附加到替换的新对象键。最好的方法是什么

我试过这样做:

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