如何定位一个带有索引的对象内的键,而该子对象位于另一个对象内?

How do I target a key that is inside an object with an index and that child object is inside another object?

在我的 reducer 中,我想定位某个键,但我认为因为它有一个索引,所以我无法使用我的 reducer 中的方法定位它。我是新手,所以不胜感激。

这是我的代码。

    export const initialState = {
    sheets: {
        0: {
            newTabsState: 'details',
            name: "Sheet",
            details: {
                projectUnit: '',
                projectName: '',
                projectId: '',
                projectCompany: '',
                projectDesigner: '',
                projectClient: ''
            },
            factors: {
                memberName: '',
                memberSpecies: '',
                memberWeight: '',
                memberLength: ''
            },
            forces: {
                forcesUnit: '',
                forcesName: '',
                forcesId: '',
                forcesCompany: '',
                forcesDesigner: '',
                forcesClient: ''
            }
        }
    }
}

我希望能够以 newTabState 为目标,这样我就可以向它添加一个值,但是当我尝试在 reducer 方法中添加索引时,我的 IDE 给我一个错误

下面的代码不起作用...你能告诉我该怎么做吗?我想学习如何。

const setNewtabState = (state, payload) => {
return {
    ...state,
    sheets: {
        ...state,
        newTabsState: payload
    }
}

}

这应该有效:

return {
   sheets: {
    0: {     
      ...state.sheets[0],
      newTabsState: payload
  }
 }

您可以像这样访问 newTabState initialState.sheets[0].newTabState

我想指出的是,像您这样使用 JavaScript 中的对象时,没有索引这样的东西。对象只有键和值,键可以是任意字符串或数字。所以我们访问的是一个由数字0表示的key。

如果您需要适当的索引,您应该使用数组(它本身具有 reduce 方法)。

参考文献: