超过最大更新深度。当组件重复调用 setState 时可能会发生这种情况
Maximum update depth exceeded. This can happen when a component repeatedly calls setState
我想调用一个方法,但同时它给我一个错误:
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.
函数声明
datahandler= (val1,val2) => {
this.setState(
{
dataNew:
this.state.dataNew=== {val1} ? {val2} : {val1}
},
() => {
this.getNew();
}
);
};
函数调用
<Table.HeaderCell onClick={this.datahandler('name asc','name desc')}>
Click Me to Call
</Table.Headercell>
您直接在渲染上调用 this.sortHandler
,这将导致调用 setState
,进而导致新的渲染,无限循环继续。
您想给 onClick
一个函数,当点击事件发生时应该调用该函数。
<Table.HeaderCell
onClick={() => this.sortHandler("companyName asc", "companyName desc")}
>
Click Me to Call
</Table.HeaderCell>
我想调用一个方法,但同时它给我一个错误:
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.
函数声明
datahandler= (val1,val2) => {
this.setState(
{
dataNew:
this.state.dataNew=== {val1} ? {val2} : {val1}
},
() => {
this.getNew();
}
);
};
函数调用
<Table.HeaderCell onClick={this.datahandler('name asc','name desc')}>
Click Me to Call
</Table.Headercell>
您直接在渲染上调用 this.sortHandler
,这将导致调用 setState
,进而导致新的渲染,无限循环继续。
您想给 onClick
一个函数,当点击事件发生时应该调用该函数。
<Table.HeaderCell
onClick={() => this.sortHandler("companyName asc", "companyName desc")}
>
Click Me to Call
</Table.HeaderCell>