1. ホーム
  2. javascript

[解決済み] ReactのsetStateで状態が更新されない

2022-03-10 05:29:50

質問

そこで、こんなものがあります。

let total = newDealersDeckTotal.reduce(function(a, b) {
  return 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

newDealersDeckTotal は単なる数値の配列です [1, 5, 9] など ただし this.state.dealersOverallTotal は正しい合計を出しませんが total ということでしょうか?この問題が解決されるかどうか確認するために、タイムアウトの遅延も入れました。 それとも、もっと多くのコードを投稿するべきでしょうか?

解決方法は?

setState() は通常非同期です。 console.log はまだ更新されていません。のコールバックにログを入れてみてください。 setState() メソッドを使用します。状態変化が完了した後に実行されます。

this.setState({ dealersOverallTotal: total }, () => {
  console.log(this.state.dealersOverallTotal, 'dealersOverallTotal1');
});