在开始使用React.js之后,似乎道具是静态的(从父组件传入),而状态会根据事件进行更改。但是,我注意到文档中提到了组件WillReceiveProps,其中特别包括以下示例:
组件将接收props:function(nextrops){
这是我的国家({
喜欢增加:nextrops.likeCount>;this.props.likeCount
});
}
这似乎意味着,根据nextProps与This.props的比较,组件上的属性可以更改。我错过了什么?道具是如何变化的,还是我弄错了它的名称
组件不能更新自己的道具,除非它们是数组或对象(让组件更新自己的道具,即使可能也是反模式的),但可以更新其状态及其子组件的道具
例如,仪表板在其状态中有一个速度字段,并将其传递给显示此速度的仪表子级。它的render方法就是return<;仪表速度={this.state.speed}/>。当仪表板调用this.setState({speed:this.state.speed+1})时,仪表将使用speed的新值重新呈现
在此之前,将调用仪表的组件willreceiveprops,以便仪表有机会比较新值和旧值