我有一个Erreur de segmentation (core dumped)
组件,该组件包装了其他需要身份验证才能访问的组件。 PrivateRoute
调用用于检查身份验证的API,同时在决定是否通过用户身份验证之前重定向之前,显示PrivateRoute
组件。
当用户最初通过Google OAuth登录时,我要显示受Loading
保护的ComponentA
。
这里的理想流程是:
用户身份验证=>重定向到PrivateRoute
=> PrivateRoute
组件渲染,而API调用完成=> Loading
呈现为刚通过身份验证的用户
但是,我得到类似的东西:
用户身份验证=> ComponentA
短暂呈现=>重定向到ComponentA
=> PrivateRoute
组件呈现,而API调用完成=> Loading
呈现为刚通过身份验证的用户
这将导致在成功进行身份验证(在这种情况下为ComponentA
时要呈现的所有内容)短暂显示给用户,然后再继续进行理想的流程。有人遇到过这样的问题吗?谢谢!
ComponentA
下面的代码:
PrivateRoute
答案 0 :(得分:1)
所以我使用PrivateRoute
而不是window.location.pathname
重定向到history.push
组件,因为后者在React中引起了无限的渲染循环错误。但是,这次,使用history.push
不会导致此错误,并且也解决了我遇到的问题。