在修改一个组件的数据的时候,我们不建议直接修改state的数据,而是复制一个副本。
比如,state里有一个数组
代码如下
constructor(props){
super(props);
this.state={
list:[]
}
}
直接修改的方法:
this.state.list.splice(index,1)
复制一个副本的方法
var list = [...list] //es6的展开运算
list.splice(index,1);
this.setState({
list:list
})
也就是,复制一个list的副本出来,修改副本的数据,再把修改好的副本数据赋值给组件中的list