我想使用React Route config实现受保护的路由。
答案 0 :(得分:0)
这是一个如何进行私有路由的示例,在这里我将redux
状态用于我的身份验证逻辑,您可以为此使用自定义逻辑。
import React from 'react'
import { Route, Redirect } from 'react-router-dom'
import { connect } from 'react-redux'
const PrivateRoute = ({ component: Component, isAuth, ...rest }) => (
<Route
{...rest}
render={props =>
isAuth ? (
<Component {...props} />
) : (
<Redirect
to={{
pathname: '/',
state: { from: props.location }
}}
/>
)
}
/>
)
const mapStateToProps = ({ isAuth }) => ({
isAuth
})
export default connect(mapStateToProps)(PrivateRoute)
答案 1 :(得分:0)
据我了解,您现在可以在配置中添加render
方法
{
{
path: "/restricted-area",
render: (props) => isUserLoggedIn() ? <RestrictedArea/> : <Redirect to="/login"/>
},
{
path: "/login",
component: Login
}
}
答案 2 :(得分:0)
如果有人需要这种行为,我推荐这个protected-react-routes-generator
它将为您处理所有逻辑,您只需要提供结构即可。