React-Route 4.0 实现一个简单的路由登录拦截

React-Route 4.0 舍去了路由钩子
为了实现在需要登录才能进入某个路由,说白了就是前端路由拦截
看例子实现的好像有点乱,自己这样实现了一下,不知道可以不可以,功能可以的

https://img4.mukewang.com/5c446ae40001cf7508150919.jpg

哈士奇WWW
浏览 2118回答 1
1回答

紫衣仙女

楼主的这种实现复杂化了,官网的那个例子不是很简洁吗,在Route的render方法内做认证判断,从而决定是否渲染组件还是重定向到登录路由,不需要重写Route的原有方法。const PrivateRoute = ({ component: Component, ...rest }) => (&nbsp; <Route {...rest} render={props => (&nbsp; &nbsp; fakeAuth.isAuthenticated ? (&nbsp; &nbsp; &nbsp; <Component {...props}/>&nbsp; &nbsp; ) : (&nbsp; &nbsp; &nbsp; <Redirect to={{&nbsp; &nbsp; &nbsp; &nbsp; pathname: '/login',&nbsp; &nbsp; &nbsp; &nbsp; state: { from: props.location }&nbsp; &nbsp; &nbsp; }}/>&nbsp; &nbsp; )&nbsp; )}/>)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript