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

这样就能解决这个问题。

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐