为了账号安全,请及时绑定邮箱和手机立即绑定

react中props的值不能改变,为什么重新渲染,nextProps值又与原来不相同呢?新手求解!

react中props的值不能改变,为什么重新渲染,nextProps值又与原来不相同呢?新手求解!

ibeautiful 2019-02-20 18:19:22
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

以上纯属个人拙见。


查看完整回答
反对 回复 2019-02-26
  • 1 回答
  • 0 关注
  • 2516 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信