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