今天在用react写项目的时候遇到了如下问题:
Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinite loops.
这个问题是在为button按钮挂上点击事件后发生的,毋庸置疑,原因在于点击事件的调用函数上
错误写法:
<button onClick={this.reOrder()}></button>
reOrder()
{
this.setState(
{
positiveOrder:!this.state.positiveOrder
}
)
}
原因是在于这么写,意思为直接调用reOrder(),改变了state,多次render,报错。
正确:
<button onClick={()=>{this.reOrder()}}>反向排序</button>
切记!!为监听器挂载函数时利用ES6箭头函数。