我有别人写的代码,其中constructor
在那里我有state
初始化,但也被称为setState
如果props
是undefined
,代码如下:在构造函数中调用的setState给出警告
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(...):只能更新已安装或已安装的组件。这通常意味着您在卸载的组件上调用了setState()。这是一个没有操作。
我对它进行了Google搜索,发现setState不应该在构造函数中调用。但仍然无法理解在构造函数中完成的事情以及反应期望的理想方式。需要一些帮助来理解,在构造函数中完成的代码是否正确,如果是,为什么,如果不是,为什么?
if语句不是不必要的吗? – fungusanthrax