如何在 reducer 中更新嵌套对象的值时在 spread 中使用变量?

How to use variable in spread while updating a value of a nested object in a reducer?

我的问题只比

提前了一步

我想知道是否有任何方法可以使用变量代替 "Professional"(这是参考问题中的关键),因为我的模型属于以下类型:

const list = {
  categories: {
    1: {
      name: "Golf",
      active: false
    },
    2: {
      name: "Ultimate Frisbee",
      active: false
    }
  }
}

我想访问 1 和 2,即下面代码中的 ID:

return {
  ...state,
  categories: {
    ...state.categories,
    <dynamic_Id>: {
      name:"xyz"
    }
  }
}

我的主要目的是更新所选 ID 的名称 属性。 如果有任何解决方案,请告诉我。 提前致谢。

我想这就是你想要的

  return {
      ...state,
      categories: {
        ...state.categories,
        [idProp]: {
        ...state.categories[idProp],
          name:"xyz"
        }
      }
    }

所以最后我的解决方案如下:

let idProp = 1;
return {
      ...state,
      categories: {
        ...state.categories,
        [idProp]: {
        ...state.categories[idProp],
          name:"xyz"
        }
      }
    }