メインコンテンツにスキップ

状態

コンポーネントを制御するデータには、propsstate の 2 種類があります。props は親によって設定され、コンポーネントのライフタイム全体で固定されます。変化するデータの場合は、state を使用する必要があります。

一般に、コンストラクタで state を初期化し、変更したい場合は setState を呼び出します。

たとえば、常に点滅するテキストを作成したいとします。テキスト自体は点滅するコンポーネントが作成されるときに一度設定されるため、テキスト自体は prop です。「テキストが現在オンかオフか」は時間とともに変化するため、state に保持する必要があります。

実運用アプリケーションでは、タイマーで状態を設定することはおそらくないでしょう。サーバーから新しいデータを受け取ったとき、またはユーザー入力があったときに状態を設定する場合があります。また、ReduxMobX などの状態コンテナを使用してデータフローを制御することもできます。その場合は、setState を直接呼び出すのではなく、Redux または MobX を使用して状態を変更します。

setState が呼び出されると、BlinkApp はコンポーネントを再レンダリングします。タイマー内で setState を呼び出すことで、タイマーが作動するたびにコンポーネントが再レンダリングされます。

State は React と同じように機能するため、State の処理に関する詳細については、React.Component API を参照してください。ここでは、ほとんどの例でデフォルトのテキストカラーを使用していることに気付いたかもしれません。テキストカラーをカスタマイズするには、スタイルについて学習する必要があります。