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

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

阅读 6k
1 个回答
新手上路,请多包涵

首先,prop 作为组件对外暴露出去的接口,当外部世界需要给组件传入数据或函数时(props 支持任何 JS 数据类型,所以不只是静态数据),通过 prop 属性传给子组件,组件接收到的 props 已成既定,不能改变,因为
react组件应该是纯函数,相同的输入,应该产生相同的输出,其是由数据驱动的(组件外部的数据prop / 组件内部的数据state))。但是外部下一次给子组件传递 prop 时,可能本身就是个变量,比如把自身 state 中某个值,作为属性传给子组件:
<ChildComponent value={this.state.value} />
下次 re-render 时,从而子组件 nextProps !== this.props

以上纯属个人拙见。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题