我有別人寫的代碼,其中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