setState

setState(function|object nextState[, function callback])

現在のstateとnextStateをマージします。 イベントハンドラとサーバーリクエストのコールバックから、UI更新をトリガするのに使用する際の主要なメソッドになります。

1つ目の引数にはオブジェクト(ゼロまたは1つ以上の更新するキーを含める)、 または更新するキーを含むオブジェクトを返す関数(stateとpropsの)を指定します。

下記はシンプルなオブジェクトによる使用例です。

setState({mykey: 'my new value'});

function(state, props)として関数を渡すことも可能です。 これは何らかの値が設定される前に、stateとpropsの前の値を扱う微細な更新をキューしたい幾つかのケースで有用です。 例えば、stateの値を増加したい場合は次のようにします。

setState(function(previousState, currentProps) {
  return {myInteger: previousState.myInteger + 1};
});

2つ目(任意)の引数はコールバック関数で、setStateが完了し、コンポーネントが再描画されると実行されます。

注意:
決して、setState()呼び出し後に変更されたとして、直接this.stateを変更しないでください。 this.stateは不変(immutable)であるかのように扱って下さい。 setState()は即座にthis.stateを変更しませんが、stateの遷移をペンディング(保留)にします。 このメソッド呼び出しの後にthis.stateにアクセスすると、既存の値が返る可能性があります。

setStateの呼び出し操作と一括処理の呼び出しは、パフォーマンスを向上させる都合上、同期される保証はありません。 setState()shouldComponentUpdate()で条件付きの描画ロジックが実装されていない限り、常に再描画をトリガします。 もし、変更可能(mutable)オブジェクトが使用されており、shouldComponentUpdate()内にそのロジックが実装されていなければ、 setState()の呼び出しは前のstateと新しいstateが異なる場合にのみ不要な再描画を避けます。

 Back to top

© 2013-2017 Facebook Inc.
Documentation licensed under CC BY 4.0.

このページは、ページトップのリンク先のReact内のページを翻訳した内容を基に構成されています。 下記の項目を確認し、必要に応じて公式のドキュメントをご確認ください。 もし、誤訳などの間違いを見つけましたら、 @tomofまで教えていただければ幸いです。

  • ドキュメントの情報が古い可能性があります。
  • "訳注:"などの断わりを入れた上で、日本人向けの情報やより分かり易くするための追記を行っている事があります。