react報Maximum update depth exceeded

這個問題出現在綁定事件並且事件中含有改變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>

這樣就能解決這個問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章