Реактивный частный маршрут не перенаправляет - PullRequest
0 голосов
/ 05 октября 2019

У меня болит голова, когда я пытаюсь понять, почему частный маршрут не перенаправляет на путь, который я настроил. Я думаю, что-то пропустить, но я не знаю что. Кто-то помог мне разобраться?

вот мой личный компонент маршрута:

import React, {useContext} from 'react';
import {Route, Redirect} from 'react-router-dom';
import AuthContext from '../../context/auth/Authcontext';

const PrivateRoute = ({component: Component, ...rest}) => {
  const authContext = useContext(AuthContext);
  const {isAuthenticated, loading} = authContext;
  return (
    <Route
      {...rest}
      render={props =>
        !isAuthenticated && !loading ? (
          <Redirect to='/pagelist' />
        ) : (
          <Component {...props} />
        )
      }
    />
  );
};

export default PrivateRoute;

Я использую контекст для обработки всей части аутентификации. Что я пытаюсь сделать, если вы не регистрируетесь, вы можете 'Т доступа к приборной панели.

вот мой App.js:

import React, {Fragment, Component} from 'react';
import {BrowserRouter as Router, Route, Switch} from 'react-router-dom';

import Navbar from './components/layouts/Navbar';
import Dashboard from './components/pages/Dashboard';
import Register from './components/auth/Register';
import Login from './components/auth/Login';
import PrivateRoute from './components/routing/PrivateRoute';

import AuthState from './context/auth/AuthState';
import AlertState from './context/alert/AlertState';
import setAuthToken from './utils/setAuthToken';


if (localStorage.token) {
  setAuthToken(localStorage.token);
}

const App = () => {
  return (
    <AuthState>
      <AlertState>
        <Router>
          <Fragment>
            <Navbar />
            <div className='container'>
              <Alerts />
              <Switch>
                <PrivateRoute exact path='/' component={Dashboard} />
                <Route exact path='/register' component={Register} />
                <Route exact path='/login' component={Login} />
              </Switch>
            </div>
          </Fragment>
        </Router>
      </AlertState>
    </AuthState>
  );
};

export default App;

Я думаю, что все сделал правильно, потому что, когда я смотрю в своей консоли, текущий пользователь не проходит проверку подлинности, но панель мониторинга по-прежнему доступна. Я что-то пропустил ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...