验证后呈现组件时,反应页面闪烁

时间:2020-07-10 18:00:33

标签: javascript reactjs firebase redux oauth

我有一个Erreur de segmentation (core dumped) 组件,该组件包装了其他需要身份验证才能访问的组件。 PrivateRoute调用用于检查身份验证的API,同时在决定是否通过用户身份验证之前重定向之前,显示PrivateRoute组件。

当用户最初通过Google OAuth登录时,我要显示受Loading保护的ComponentA

这里的理想流程是:

用户身份验证=>重定向到PrivateRoute => PrivateRoute组件渲染,而API调用完成=> Loading呈现为刚通过身份验证的用户

但是,我得到类似的东西:

用户身份验证=> ComponentA短暂呈现=>重定向到ComponentA => PrivateRoute组件呈现,而API调用完成=> Loading呈现为刚通过身份验证的用户

这将导致在成功进行身份验证(在这种情况下为ComponentA时要呈现的所有内容)短暂显示给用户,然后再继续进行理想的流程。有人遇到过这样的问题吗?谢谢!

ComponentA下面的代码:

PrivateRoute

1 个答案:

答案 0 :(得分:1)

所以我使用PrivateRoute而不是window.location.pathname重定向到history.push组件,因为后者在React中引起了无限的渲染循环错误。但是,这次,使用history.push不会导致此错误,并且也解决了我遇到的问题。