React-Route 4.0 舍去了路由钩子为了实现在需要登录才能进入某个路由,说白了就是前端路由拦截看例子实现的好像有点乱,自己这样实现了一下,不知道可以不可以,功能可以的
1 回答
紫衣仙女
TA贡献1839条经验 获得超15个赞
楼主的这种实现复杂化了,官网的那个例子不是很简洁吗,在Route的render方法内做认证判断,从而决定是否渲染组件还是重定向到登录路由,不需要重写Route的原有方法。
const PrivateRoute = ({ component: Component, ...rest }) => (
<Route {...rest} render={props => (
fakeAuth.isAuthenticated ? (
<Component {...props}/>
) : (
<Redirect to={{
pathname: '/login',
state: { from: props.location }
}}/>
)
)}/>
)
添加回答
举报
0/150
提交
取消