2017-05-25 77 views
1

我有两个页面,管理员和登录页面。如果用户未登录管理页面必须重定向到登录页面,并且用户登录页面必须重定向到管理页面。Configuration react-router v4

在react-router v3中我有onEnter和onChange方法,在这种方法中我可以获得存储并查看用户是否登录并且不在路径中,但是在v4中不存在这个方法,所以包含onEnter和onChange的所有逻辑我必须在组件中放入方法,例如componentWillReceiveProps

谢谢!

回答

1

是的。在react-router v4中,路由被认为是另一种类型的组件。如果浏览器位置与给定路径匹配,那么Route就是一个呈现另一个给定组件的组件,而这就是它的全部功能。由于这个设计决定,为路线另外设置一组生命周期方法并没有什么意义,我们可以改为使用React组件生命周期方法。根据我的经验,它几乎涵盖了react-router v3生命周期钩子所支持的所有用例。

就你而言,你可以简单地将条件<Redirect/>标记放在你的管理组件和登录组件的JSX中以使其工作。另外,这种情况在新的反应路由器4 中得到了很好的解释。