這個問題出現在綁定事件並且事件中含有改變state的邏輯時,運行報的錯:
代碼:
toggleDrawer(flag){
this.setState({left: flag});
}
...
<div onClick={this.toggleDrawer(true)}>打開左邊</div>
上面是報錯代碼:
原因是,{this.toggleDrawer(true)}這樣的寫法在render的時候它就會執行,這時候裏面改變state,導致頁面渲染,觸發render,如此一直循環多次,報錯。
正確書寫:
<div onClick={()=>this.toggleDrawer(true)}>打開左邊</div>
這樣就能解決這個問題。