我有一个由其他人编写的代码,constructor
其中我已经state
初始化但也称为setState
if props
,undefined
代码如下:
constructor(props) {
super(props);
this.state = {
subId: props.match.params.subId
}
if(props!==undefined){
this.setState({
subId: props.match.params.subId
});
}
}
当我执行我的模块时,我在控制台中收到警告警告:warning.js:35 警告:setState(...): Can only update amounted ormounting component。这通常意味着您在未安装的组件上调用了 setState()。这是一个无操作。
我搜索了一下,发现 setState 不应该在构造函数中调用。但是仍然无法理解在构造函数中所做的事情以及反应所期望的理想方式。需要一些帮助来理解,构造函数中完成的代码是否正确,如果是,为什么,如果不是,为什么?