我可以在React.js中更新组件的道具吗?

在开始使用React.js之后,似乎道具是静态的(从父组件传入),而状态会根据事件进行更改。但是,我注意到文档中提到了组件WillReceiveProps,其中特别包括以下示例:

组件将接收props:function(nextrops){
这是我的国家({
喜欢增加:nextrops.likeCount>this.props.likeCount
});
}

这似乎意味着,根据nextPropsThis.props的比较,组件上的属性可以更改。我错过了什么?道具是如何变化的,还是我弄错了它的名称

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

例如,仪表板在其状态中有一个速度字段,并将其传递给显示此速度的仪表子级。它的render方法就是return<仪表速度={this.state.speed}/&gt。当仪表板调用this.setState({speed:this.state.speed+1})时,仪表将使用speed的新值重新呈现

在此之前,将调用仪表的组件willreceiveprops,以便仪表有机会比较新值和旧值

发表评论