(一)背景
樓主在最近的業務開發中剛剛接觸使用了react,發現react裡的setstate方法是非同步執行的,那麼我們該怎麼讓我們的程式碼使用的是setState後的數值呢,本文將給出樓主蒐集的方案。
(二)具體解決方案
//1.設定程式碼
this.setState({
myState: 'doubi'
}, function() {
// stateFunction是需要立即用到
this.stateFunction()
})
//2.在函式中直接呼叫
stateFunction() {
console.log('doubi', this.state.myState)
}複製程式碼
react的setstate方法中的第二個引數為會回掉函式,所以我們就不用再去寫一個回掉函式了,當然也可以這麼寫:
this.setState({
myState: 'doubi'
},() => {
console.log(111);
})複製程式碼
(三)注意問題
1.在setState中的呼叫的stateFunction()函式不會立即執行,呼叫的時候才執行該函式。
// 也就是說,setState中的function只是宣告能立即用到,而不會立即執行。
2.當stateFunction()函式裡面有傳入引數的時候,在設定setState的時候,也需要函式。