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';

请注意,您必须使用withRouterreact-router-dom实用程序从props中可靠地访问历史记录。

以上是关于React Router 4,如何在所有路由上检查可能的重定向?的主要内容,如果未能解决你的问题,请参考以下文章

React Router:如何在所有路由上渲染元素,除了一个?

React Router 4 和酶

在 React Router v6 中,如何在离开页面/路由之前检查表单是不是脏

如何在 react-router v4 的根路由上设置可选参数?

React router 4 如何嵌套路由 /admin 和 /

使用 react-router-v4 对路由执行身份验证