ComponentDidUpdate 使用 setState 调用无限次



你好,我正在尝试改变状态,改变一个对象,它被称为无限次

法典

componentDidUpdate (prevState) {
if (prevState.tab !== this.state.tab) {
this.setState((prevState) => ({
...prevState.tableConfiguration,
columns: getColumnsConfig(this.state.tab)
}))
}
}

未捕获的不变冲突:超出最大更新深度。当组件在 componentWillUpdate 或 componentDidUpdate 中重复调用 setState 时,可能会发生这种情况。React 限制嵌套更新的数量以防止无限循环。

任何建议

感谢您的评论,我找到了一个解决方案。

componentDidUpdate (prevProps, prevState) {
if (prevState.tab !== this.state.tab) {
const newConfig = {
...prevState.tableConfiguration,
columns: getColumnsConfig(this.state.tab)
}
this.setState({ tableConfiguration: newConfig })
}
}

最新更新