在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML/ react state不更新更新

react state不更新更新

tab切換的時(shí)候更新當(dāng)前選擇的tab,debugger發(fā)現(xiàn)state并沒(méi)有更新,請(qǐng)問(wèn)具體原因是什么,萬(wàn)分感謝!

constructor(props) {
    super(props)
    this.state = {
      selected: 'blacklist'
    }
  }
tabChange(newSelected) {  // newSelected = "score"
    const {selected} = this.state; // selected = "blacklist"
    debugger
    if (selected !== newSelected) { // selected = "blacklist", newSelected = "score"
      this.setState({
        selected: newSelected,
      })
      const {tabChange} = this.props
      tabChange(newSelected)
    }
    debugger
    const state = this.state //state = {selected: "blacklist",}
    console.log(state)
  }
回答
編輯回答
尛憇藌

react在生命周期和event handler里的setState會(huì)被合并(異步)處理。(17版本以后全都會(huì)變異步)

2017年11月7日 01:43
編輯回答
厭遇

setState 是異步的. 你需要在回調(diào)里回去獲取更新后的 state.

this.setState({
  selected: newSelected,
}, function() {
    console.log(this.state)
});
2017年6月17日 21:14