天天看點

6.25 react setState異步的坑setState向事件回調函數傳參

react

  • setState
  • 向事件回調函數傳參

setState

先來看一段代碼

state = {
  name:'ww'
}
this.setState({
 name: 'zs'
})
console.log(this.state.name); //  ww
           

看完以上代碼,相信你已經明白,setState相當于是異步操作

,列印name的時候,狀态還未更新。

怎麼解決?

state = {
  name:'ww'
}
this.setState({
 name: 'zs'
},() => {
//當state的狀态更新完成,且render()之後調用
console.log(this.state.name); //  zs
})
           

setState的第二個參數是一個回調函數,當state的狀态更新完成,且render()之後調用,可以解決狀态setState的異步問題

向事件回調函數傳參

react中

這裡必須是一個函數,如果直接

onClick={this.getList(id)}
           

還未點選就會執行該函數

繼續閱讀