首頁 >web前端 >js教程 >在 React 中呼叫 setState() 後如何立即存取更新的狀態值?

在 React 中呼叫 setState() 後如何立即存取更新的狀態值?

Linda Hamilton
Linda Hamilton原創
2024-12-16 16:35:15949瀏覽

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() 呼叫是非同步的。這表示當第二個 console.log 語句執行時,狀態尚未更新。

為了解決這個問題,可以使用回調模式。這涉及將回呼函數傳遞給setState(),該函數將在狀態變更完成後執行:

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

透過採用此方法,控制台日誌語句將僅在狀態更新後執行,確保顯示正確的值。

以上是在 React 中呼叫 setState() 後如何立即存取更新的狀態值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn