在进行选中行的数据操作时,有没有必要使用props传过来的值的副本进行操作
来源:10-7 表格封装(3)

慕哥9091499
2020-03-14
想问一下老师,这里的selectedIds是取得props中的值,这样直接push我感觉是子组件修改父组件的值了,有没有必要使用props传过来的值的一个副本来进行push或者splice操作,比如说
let selectedIds = JSON.parse(JSON.stringify(this.props.selectedIds))
写回答
1回答
-
您说的有些道理,毕竟是一个引用类型,这边操作可能会影响到父组件的值,但是您可能没有注意到最后一个方法,虽然我们直接修改了父组件的值,但实际上没有调用setState依然不会渲染,所以,我们最后一个方法:
this.props.updateSelectedItem会把改完的值传会去,父组件接收到以后,会再次调用setState进行视图渲染;所以,总体来说,即使用JSON.stringify了,也没有多大作用,因为最后我们是要传回去进行覆盖和跟新的。
012020-03-14
相似问题