React中如何使用setState第二個引數來處理set後的資料

weixin_33686714發表於2017-10-30

(一)背景

樓主在最近的業務開發中剛剛接觸使用了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的時候,也需要函式。

相關文章