【发布时间】:2017-11-03 09:33:26
【问题描述】:
我有这个对象数组。 console.log(this.state.zones) 将打印出来
[
{
"name": "Zone 1",
"cameras": []
},
{
"name": "Zone 2",
"cameras": [
{
"device_id": 123,
"entrance_name": "East Gate",
"name": "SA-PCS-010",
}
]
}
]
我想添加一个值为true或false的checked属性,我尝试了以下尝试。
this.setState({
zones: [{
...this.state.zones,
cameras: [{
...this.state.zones[this.state.selectedZoneOnMenu].cameras.map(
o => ({...o, checked: o.device_id === camera_id ? true : false
})
)
}]
}]
})
假设this.state.selectedZoneOnMenu是1,camera_id是'device_id'是123,为什么上面的setState失败了?重新渲染时出现未定义的相机错误。
【问题讨论】:
-
对于嵌套状态最好使用 ImmutableJS。你的代码会很清晰
标签: javascript reactjs ecmascript-6