React 中的setState:導航非同步更新
背景:
背景:在React 中, setState( ) 用於更新組件的狀態。然而,值得注意的是 setState() 並不總是立即執行的。它可能會非同步執行,從而導致狀態值存在潛在差異。
特定問題:遇到問題的使用者報告使用 setState() 狀態更新不一致在組件方法中。具體來說,他們觀察到在 setState() 之後存取狀態的 console.log 語句並不總是反映預期的更新值。
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
程式碼片段:
原因:
問題的出現是由於非同步特性設定狀態()。當第一個console.log執行時,狀態還沒有更新。因此,它會記錄錯誤的值。
解決方案:this.setState({ dealersOverallTotal: total }, () => { console.log(this.state.dealersOverallTotal, 'dealersOverallTotal1'); });
以上是為什麼我的「setState」更新沒有立即反映在我的 React 元件中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!