1. ホーム
  2. reactjs

ReactJSやReact NativeでクラスのコンストラクタにsetState()関数を使用するとどうなりますか?

2023-08-21 04:29:17

質問

興味本位で、もし私が setState() 関数を使用した場合、何が起こるのでしょうか? 例えば、次のようなものです。

constructor(props) {
  super(props);
  this.setState({title: 'new title'});
}

Reactのライフサイクルはどうなるんだろう?


Reactの中のコードは読んでないです。そのように書くと何か被害がありそうで怖いです。

どうすればいいのでしょうか?

どのような setState が本質的に行うことは、コンストラクタでおそらく必要のないロジックを大量に実行することです。

あなたが state = {foo : "bar"} を実行する場合、javascriptオブジェクトに何かを代入するだけです。 state に、他のオブジェクトと同じように何かを代入します。(これはすべて state は、すべてのコンポーネントにローカルな通常のオブジェクトです)。

を使うとき setState() とすると、オブジェクトへの代入とは別に state はコンポーネントとその子オブジェクトの再レンダリングも行います。コンポーネントはまだレンダリングされていないので、コンストラクタでは必要ありません。