我试图在登录后重定向到主页。我将主页保留为私人路线。
以下是我的route.js文件
const loggedInStatus = () => {
console.log('hello this is login satus')
let isLoggedIn = false
let auth = localStorage.getItem('auth')
if (auth) {
auth = JSON.parse(auth)
isLoggedIn = auth.token ? true : false
}
return isLoggedIn
}
export const PrivateRoute = ({ component: Component, ...rest }) => (
<Route {...rest} render={(props) => (
loggedInStatus()
? <Component {...props} />
: <Redirect to='/login' />
)} />
)
export const Routing = () => {
return (
< BrowserRouter >
<div>
<Header />
<PrivateRoute exact path="/" component={Home} />
<Route exact path="/login" component={Login} />
<Footer />
</div>
</BrowserRouter >
)
}
export default {Routing, PrivateRoute};
在上面的文件中,我将用户重定向到登录页面,以防用户未登录。
以下是我的登录组件中的pageredirect函数
// importing private route from routing file.
import {PrivateRoute} from '../Routing'
// Importing the home and admin dashboard component
import Home from '../Home/Home';
import AdminDashboard from '../admin/AdminDashboard'
pageRedirect(isadmin = false) {
if (isadmin) {
return <PrivateRoute path="/admin" component={AdminDashboard} />
} else {
return <PrivateRoute exact path="/" component={Home} />
}
}
我想将用户发送到管理员仪表板,如果用户是管理员,则将其重定向到主页。
除重定向外,所有功能都运行良好。有什么我做错了。我是 React 的新手。任何帮助将不胜感激,并且有人可以解释路线如何在反应中工作。