React Router v4在浏览器刷新刷新后登录检查

问题描述:

我正在使用react路由器v4并尝试实施受保护的api视图。例如,如果用户在未登录的情况下转到/add/网址,他们将被重定向到/login/,然后成功登录到/add/React Router v4在浏览器刷新刷新后登录检查

我能够使用想法from this post实现它。但是,每当加载应用程序的初始http请求来自受保护的url时,我都会遇到问题。

E.g.当我在浏览器中输入'/add/'并回车时,我遇到了异步问题,我的应用程序没有时间向服务器发出ajax请求以检查登录,结果路由器最终路由到/login/,因为ajax授权请求尚未完成。

有人可以推荐登录工作流应该一般处理,考虑到事实上,用户可能会启动他们的会话上受保护的网址,如'/add/',而不是在家里'/'

找到了一个简单的标准React模式解决方案。除非在ajax检查中的日志已经完成,否则不要渲染<Route>组件。

所以,当应用程序加载的第一次,初始化状态checkingLogIntrue,除非它变得false不提供任何<Route>组件。当检查登录的ajax功能完成时,请致电setStatecheckingLogIn设置为false。这将导致<Route>呈现并正确重定向。