向函数传递参数时出错



我正试图向函数onGridRowsUpdated发送一个请求,但它给了我的错误

Error: 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.

我想知道问题出在哪里,因为我正确地调用了参数。

onGridRowsUpdated = ({ fromRow, toRow, updated }) => {
this.setState(state => {
const rows = state.rows.slice();
for (let i = fromRow; i <= toRow; i++) {
console.log(fromRow, toRow, updated)
rows[i] = { ...rows[i], ...updated };
}
this.definedColumn();
return { rows };
});
};
render() {
this.onGridRowsUpdated(1, 1, {D: '26'});
}

您应该知道,只要组件状态发生变化,就会重新渲染。

正如我在代码中所看到的,您正在调用一个函数来渲染某个表,在该函数中,您调用的是本质上异步的setState()方法。这就是重新渲染发生并导致超过最大更新深度的原因

渲染应始终保持纯净。这是一种非常糟糕的做法副作用,调用setState是一个巨大的危险信号;

要获得更多参考,请查看此out-setState((方法

在render内部调用setState()-从render方法调用React中的setState((

最新更新