ホームページ > ウェブフロントエンド > jsチュートリアル > React の `setState()` の後に更新された状態が `console.log` に表示されないのはなぜですか?

React の `setState()` の後に更新された状態が `console.log` に表示されないのはなぜですか?

DDD
リリース: 2024-12-15 10:31:09
オリジナル
501 人が閲覧しました

Why Doesn't `console.log` Show the Updated State After `setState()` in React?

React の setState() メソッドの非同期

React の setState() メソッドは通常非同期であり、console.log に状態を正しく記録することを意味します。呼び出した後、まだ更新されていない可能性があります。

提供されたコード スニペットを使用すると、合計を正しく計算し、それを setState() メソッドに渡して DealersOverallTotal 状態を更新できます。ただし、コードはその直後に this.state.dealersOverallTotal をログに記録します。これにより、状態を更新するのに十分な時間がなかったため、間違った値が公開される可能性があります。

更新された状態の値を確実に記録するには、ログを以下に配置します。 setState() コールバック関数。状態の変更が完了した後に実行されます:

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

この変更により、console.log ステートメントは状態が変更された後にのみ実行されるようになります。更新されているため、正しい合計が表示されています。

以上がReact の `setState()` の後に更新された状態が `console.log` に表示されないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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