React Router 4,如何在所有路由上检查可能的重定向?

时间:2017-07-03 03:04:40

标签: reactjs react-router react-router-v4

在我的应用中,用户注册后,我需要用户确认他们的电子邮件地址才能使用该应用。

如果用户已通过身份验证state.currentUser.isLoggedIn,我想像这样运行支票:

if (!state.currentUser.confirmed) {
   redirect to "/welcome/verify-your-email)
}

除非用户在" / welcome"路径,因为我希望用户能够注册,创建他们的个人资料,然后在能够访问应用程序之前验证他们的电子邮件。

使用React Router 4,我如何在Routes文件中实现这一点?

谢谢

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,并没有找到比检查历史道具动作属性更好的解决方案:

const { history } = this.props;
const isRedirect = history.action === 'REPLACE';

请注意,您必须使用withRouter react-router-dom实用程序来可靠地从道具中访问历史记录。