尝试更新对象数组的状态,但不知道它在状态中是否反映。
set_is_core = (selected_id) => {
const { main } = this.state
const next_main = main.map(o => {
if(o.main_id === selected_id){
console('trigger') //true
return ({
...o,
is_core: true
})
}
return o
})
this.setState({
main: next_main
}, ()=> console.log(this.state.main.some(o => o.is_core))//false?)
}
无法弄清楚出了什么问题。
答案 0 :(得分:0)
您正在尝试映射对象。只能使用es6映射数组。您可以将main
变量结构更改为数组,也可以使用lodash map来映射对象https://lodash.com/docs#map
例如:
import {map} from 'lodash'
...
set_is_core = (selected_id) => {
const { main } = this.state
const next_main = map(main, (o) => {
if(o.main_id === selected_id){
console('trigger') //true
return ({
...o,
is_core: true
})
}
return o
})
this.setState({
main: next_main
}, ()=> console.log(this.state.main.some(o => o.is_core))//false?)
}