这个问题出现在绑定事件并且事件中含有改变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>
这样就能解决这个问题。