在进行选中行的数据操作时,有没有必要使用props传过来的值的副本进行操作

来源:10-7 表格封装(3)

慕哥9091499

2020-03-14

想问一下老师,这里的selectedIds是取得props中的值,这样直接push我感觉是子组件修改父组件的值了,有没有必要使用props传过来的值的一个副本来进行push或者splice操作,比如说
let selectedIds = JSON.parse(JSON.stringify(this.props.selectedIds))
图片描述

写回答

1回答

河畔一角

2020-03-14

您说的有些道理,毕竟是一个引用类型,这边操作可能会影响到父组件的值,但是您可能没有注意到最后一个方法,虽然我们直接修改了父组件的值,但实际上没有调用setState依然不会渲染,所以,我们最后一个方法:

this.props.updateSelectedItem会把改完的值传会去,父组件接收到以后,会再次调用setState进行视图渲染;所以,总体来说,即使用JSON.stringify了,也没有多大作用,因为最后我们是要传回去进行覆盖和跟新的。

0
1
慕哥9091499
明白您的意思了,谢谢老师
2020-03-14
共1条回复

React全家桶+AntD共享单车后台管理系统开发

React全家桶+AntD框架+大量前沿技术

1142 学习 · 495 问题

查看课程