【发布时间】:2019-08-14 15:34:00
【问题描述】:
我正在使用 3 个相互传递数据的组件。在第二个 当标志 passFlag 为真时,我正在尝试执行此操作。
cancelCourse = () => {
this.setState({
settledAmount:'',
creditAmount:'',
productDescription:'',
reasonCode:'',
storedCollectedInformation:[]
});
}
componentDidUpdate(){
if(this.props.passFlag === true){
this.cancelCourse();
}
}
我不断收到无限循环,并显示以下错误消息。
invariant.js:42 Uncaught Invariant Violation:超过最大更新深度。 当组件在 componentWillUpdate 内重复调用 setState 或 组件更新。 React 限制了嵌套更新的数量以防止无限循环。
请问我该如何解决这个问题?
我要做的就是将表单上的控件重置为空。
【问题讨论】:
-
我是新手。我该如何解决这个问题或以更好的方式编写它?
-
当您发出
cancelCourse()时,您正在调用setState(),然后它会调用生命周期事件componentDidUpdate(),因为组件的状态已更改。
标签: reactjs