react数组内取出的对象发生变化,会影响原数组

定义一个数组

this.state = {    list: [],    obj: {}
}const list = [
    {id: 1},
    {id: 2}
]this.setState({    list})

取出一个对象

const obj = list[0]this.setState({
    obj
})

修改对象,修改值,然后setState

obj.id = 3this.setState({
    obj
})

问题来了,请问原因?

  • 像这样修改,list中obj值也会发生变化,会成这样

[
    {id: 3},
    {id: 2}
]
  • 即使把obj和list切断,如下操作,修改obj,list的值依然会变化

const list1 = [].concat(list)const obj = list1[0]// 然后修改obj,list中obj的值依然会变


哆啦的时光机
浏览 622回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP