在 react 中使用 hooks 封装 路由拦截功能函数
时间: 2024-04-24 07:06:55 浏览: 98
很高兴回答你的问题!针对你的问题,我可以向你提供以下代码:
```
import React from 'react';
import { Route, Redirect } from 'react-router-dom';
const isAuthenticated = () => {
// 判断用户是否已登录
// 如果已登录则返回 true,否则返回 false
}
const PrivateRoute = ({ component: Component, ...rest }) => (
<Route {...rest} render={(props) => (
isAuthenticated() === true ? <Component {...props} /> : <Redirect to='/login' />
)} />
);
export default PrivateRoute;
```
在上面的代码中,我们使用了 React Router 的 `<Route>` 和 `<Redirect>` 组件,同时使用了 render props 和 Spread Attributes,在高阶组件中对路由进行拦截。如果用户已登录,则显示路由组件,否则将用户重定向到登录页面。
希望这个代码能够帮助你解决问题。如果你还有其他的问题或疑问,请随时向我提问,我会尽力为你解答。
阅读全文