はじめに ReactのsetStateには引数にオブジェクトを渡す方法と関数を渡す方法の2通り存在しますが、この2つはどう違うのか整理してみました。 setState() はコンポーネントの state オブジェクト更新をスケジュールします。state が更新されると、コンポーネントはそれに再レンダーで応じます。 setState 呼び出しは非同期です。呼び出し直後から this.state が新しい値を反映することを期待しないでください。もし現在の state に基づいた値を計算する必要がある場合は、オブジェクトの代わりに更新関数を渡してください。 まとめると setStateの呼び出しは非同期 setState()は、引数にオブジェクトが渡された場合に、stateを即時にアップデートすることを保証しない 現在のstateに依存する値を更新する場合は、引数にオブジェクトではなく関数を渡す