【发布时间】:2020-04-16 05:17:24
【问题描述】:
我有一个具有数组的状态的对象。我想将该数组的IDs 的状态设置为该状态下的另一个空数组。我希望将 array1[1].team.id 推送到空数组 array2 并将状态设置为 true。我的代码:
this.state: {
array1: [
{id:1, team: [
{id:1, name: 'name1a'},
{id:2, name: 'name2a'},
{id:3, name: 'name3a'}
]},
{id:2, team: [
{id:1, name: 'name1b'},
{id:2, name: 'name2b'},
{id:3, name: 'name3b'}
]},
{id:3, team: [
{id:1, name: 'name1c'},
{id:2, name: 'name2c'},
{id:3, name: 'name3c'}
]},
],
array2: [
]
}
所以有了这个函数,我希望 array2 是:
array2: [
{id:1, status:true},
{id:2, status:true},
{id:2, status:true}
]
我试过了:
updateArray = (id) => { //consider id=1
let array2 = [...this.state.array2];
let newArray2 = [...this.state.array1[id].team.id, status:true];
this.setState({
array2: newArray2
})
}
它没有工作。显然,做错了什么。我该怎么做?谢谢。
【问题讨论】:
-
也没有
...team.id,因为.team是一个数组。为什么第二个数组顺便说一句?不能只将status: true添加到第一个数组的团队对象中吗? -
为什么在预期的
array2中有两个带有id:2的对象?请为array1中的每个对象和team数组中的对象创建不同的ID,并写出清晰的问题陈述。目前尚不清楚您要在 array2 中添加哪个id -
@adiga 假设我想添加数组 [1] id。
-
请退后一步,描述一下最终目标是什么。像“我想要一个布尔值
status为每个团队,并且能够根据我喜欢使用setTeamStatus(id, newStatus)之类的东西来更改它” -
如果
array2已经拥有(部分)id 怎么办?
标签: javascript arrays reactjs react-native ecmascript-6