react中props的值不能改变,为什么重新渲染,nextProps值又与原来不相同呢?新手求解!
1 回答
精慕HU
TA贡献1845条经验 获得超8个赞
首先,prop 作为组件对外暴露出去的接口,当外部世界需要给组件传入数据或函数时(props 支持任何 JS 数据类型,所以不只是静态数据),通过 prop 属性传给子组件,组件接收到的 props 已成既定,不能改变,因为
react组件应该是纯函数,相同的输入,应该产生相同的输出,其是由数据驱动的(组件外部的数据prop / 组件内部的数据state))。但是外部下一次给子组件传递 prop 时,可能本身就是个变量,比如把自身 state 中某个值,作为属性传给子组件:<ChildComponent value={this.state.value} />
下次 re-render 时,从而子组件 nextProps !== this.props
以上纯属个人拙见。
添加回答
举报
0/150
提交
取消