代码运行正常,但这无处不在。
我尝试将条件切换为componentDidMount
,但这也不起作用。得到此功能的错误。
componentDidUpdate() {
if (
this.props.firebase.auth.currentUser &&
this.props.firebase.auth.currentUser.userProfile &&
!this.state.userProfile
) {
this.setState(
{
userProfile: this.props.firebase.auth.currentUser.userProfile
.userProfile
}
);
}
}
应该将用户重定向到nextPage,但出现“超出最大更新深度”错误。
答案 0 :(得分:0)
为什么有.userProfile.userProfile?您可能会使用未定义的userProfile更新,因此!this.state.userProfile
检查失败。
我将删除第二个.userProfile。
答案 1 :(得分:0)
您没有将prevProps
传递给componentDidUpdate
,然后在条件中使用它。如果没有有关您为什么使用userProfile的更多信息,我建议您执行以下操作:
componentDidUpdate(prevProps){
if(this.props.firebase.auth.currentUser === this.prevProps.firebase.auth.currentUser) {
///your code
}}
您对this.props.firebase.auth.currentUser.userProfile && !this.state.userProfile
的逻辑似乎不应该放在此方法中,因为如果您比较currentUser
是否仍然存在并且在组件更新后相同,这似乎是多余的。 / p>