如何定位一个带有索引的对象内的键,而该子对象位于另一个对象内?
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
方法)。
参考文献:
在我的 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
方法)。
参考文献: