私は他の誰かによって書かれたコードを持っていますが、constructor
どこで初期化しましたが、 if isstate
とも呼ばれます。コードは次のとおりです。setState
props
undefined
constructor(props) {
super(props);
this.state = {
subId: props.match.params.subId
}
if(props!==undefined){
this.setState({
subId: props.match.params.subId
});
}
}
モジュールを実行すると、コンソールに警告が表示されます。これは通常、マウントされていないコンポーネントで setState() を呼び出したことを意味します。これはノーオペレーションです。
私はそれについてグーグルで調べたところ、コンストラクターで setState を呼び出すべきではないことがわかりました。しかし、ここでコンストラクターで行われたことと、反応によって期待される理想的な方法をまだ理解できていません。コンストラクターで行われたコードが正しいかどうかを理解するのに助けが必要ですか? はいの場合はなぜですか? いいえの場合はなぜですか?