React Router 4,如何在所有路由上检查可能的重定向?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React Router 4,如何在所有路由上检查可能的重定向?相关的知识,希望对你有一定的参考价值。
在我的应用程序中,用户注册后,我需要用户确认他们的电子邮件地址才能使用该应用程序。
如果用户通过state.currentUser.isLoggedIn
身份验证,我想像这样运行检查:
if (!state.currentUser.confirmed) {
redirect to "/welcome/verify-your-email)
}
除非用户位于“/ welcome”路径内,因为我希望用户能够注册,创建他们的个人资料,然后在能够访问该应用之前验证他们的电子邮件。
使用React Router 4,我如何在Routes文件中实现这一点?
谢谢
答案
我有同样的问题,并没有找到比检查历史道具动作属性更好的解决方案:
const { history } = this.props;
const isRedirect = history.action === 'REPLACE';
请注意,您必须使用withRouter
的react-router-dom
实用程序从props中可靠地访问历史记录。
以上是关于React Router 4,如何在所有路由上检查可能的重定向?的主要内容,如果未能解决你的问题,请参考以下文章
React Router:如何在所有路由上渲染元素,除了一个?
在 React Router v6 中,如何在离开页面/路由之前检查表单是不是脏
如何在 react-router v4 的根路由上设置可选参数?