接收错误:× 超过最大更新深度。当组件重复调用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');
// }
};
答案 0 :(得分:3)
history.push
导致重新渲染,它调用componentWillReceiveProps
,一切都循环进行。
改为使用以下代码:
componentDidUpdate(prevProps) {
if (
this.props.auth.isAuthenticated
&& this.props.auth.isAuthenticated !== prevProps.auth.isAuthenticated
) {
this.props.history.push('/dashboard')
}
}
如果您在其他地方遇到类似的错误,这仍然可能导致循环。