属性 – 我可以更新组件的道具在React.js?

在开始使用React.js后,似乎道具是静态的(从父组件传入),而状态根据事件发生变化。但是,我在文档中注意到了 componentWillReceiveProps的引用,其中特别包括此示例:
componentWillReceiveProps: function(nextProps) {
  this.setState({
    likesIncreasing: nextProps.likeCount > this.props.likeCount
  });
}

这似乎暗示属性可以基于nextProps与this.props的比较而在组件上改变。我缺少什么?道具如何变化,或者我错误地知道这是什么名字?

组件不能更新自己的道具,除非它们是数组或对象(即使可能是组件更新其自己的道具是反模式),但是可以更新其状态和子组件的道具。

例如,仪表板具有处于其状态的速度字段,并将其传递给显示该速度的计量器孩子。它的render方法只是返回< Gauge speed = {this.state.speed} /&gt ;.当仪表板调用this.setState({speed:this.state.speed 1})时,将使用新的速度值重新渲染计量器。 就在这之前,Gauge的componentWillReceiveProps被调用,因此Gauge有机会将新值与旧值进行比较。

相关文章

react 中的高阶组件主要是对于 hooks 之前的类组件来说的,如...
我们上一节了解了组件的更新机制,但是只是停留在表层上,例...
我们上一节了解了 react 的虚拟 dom 的格式,如何把虚拟 dom...
react 本身提供了克隆组件的方法,但是平时开发中可能很少使...
mobx 是一个简单可扩展的状态管理库,中文官网链接。小编在接...
我们在平常的开发中不可避免的会有很多列表渲染逻辑,在 pc ...