接收错误:×超出最大更新深度。当组件在componentWillUpdate或componentDidUpdate中重复调用setState时,可能会发生这种情况。 React限制嵌套更新的数量以防止无限循环。
试图删除带有错误和setState的部分(因为它看起来像是无限循环的原因)。没有帮助
componentWillReceiveProps(nextProps){
if(nextProps.auth.isAuthenticated){
this.props.history.push('/dashboard')
}
// if(nextProps.errors){
// this.setState({
// errors: nextProps.errors
// })
// console.log('Error');
// }
};
history.push
导致rerender,它调用componentWillReceiveProps
,一切都进入循环。
请改用此代码:
componentDidUpdate(prevProps) {
if (
this.props.auth.isAuthenticated
&& this.props.auth.isAuthenticated !== prevProps.auth.isAuthenticated
) {
this.props.history.push('/dashboard')
}
}
如果你在其他地方遇到类似的错误,这仍然会导致循环。