登录后重定向到私有路由不起作用?

时间:2020-12-27 13:19:04

标签: reactjs routes react-router

我试图在登录后重定向到主页。我将主页保留为私人路线。

以下是我的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 的新手。任何帮助将不胜感激,并且有人可以解释路线如何在反应中工作。

0 个答案:

没有答案