ホームページ > ウェブフロントエンド > jsチュートリアル > React で setState() を呼び出した直後に更新された状態値にアクセスするにはどうすればよいですか?

React で setState() を呼び出した直後に更新された状態値にアクセスするにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-16 16:35:15
オリジナル
941 人が閲覧しました

How Can I Access Updated State Values Immediately After Calling setState() in React?

React の状態伝播の難問

React の setState() メソッドは、更新された状態値を更新直後に取得しようとすると課題を引き起こします。これは、setState() の非同期の性質によるものです。

次のコードを考えてみましょう:

let total = newDealersDeckTotal.reduce((a, b) => a + b, 0);

console.log(total, 'tittal'); // Outputs correct total
setTimeout(() => {
  this.setState({ dealersOverallTotal: total });
}, 10);

console.log(this.state.dealersOverallTotal, 'dealersOverallTotal1'); // Outputs incorrect total
ログイン後にコピー

ここでの問題は、setState() 呼び出しが非同期であることです。これは、2 番目の console.log ステートメントが実行されるとき、状態がまだ更新されていないことを意味します。

これに対処するには、コールバック パターンを使用できます。これには、状態の変更が完了すると実行されるコールバック関数を setState() に渡すことが含まれます。

this.setState({ dealersOverallTotal: total }, () => {
  console.log(this.state.dealersOverallTotal, 'dealersOverallTotal1');
});
ログイン後にコピー

このアプローチを採用すると、コンソール ログ ステートメントは状態が更新された後にのみ実行され、確実に状態が更新されます。正しい値が表示されていることを確認します。

以上がReact で setState() を呼び出した直後に更新された状態値にアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート