Перенаправление вызывает бесконечный цикл - PullRequest
0 голосов
/ 25 декабря 2018

У меня проблема с маршрутизацией в моем приложении, и, наконец, я нашел источник проблемы.Вот мое определение маршрутизатора

const PublicRoutes = ({history, isLoggedIn}) => {
  console.log("RENDERING ROUTES");
  return (
    <Switch>
      <Route exact path={'/404'} component={asyncComponent({resolve: () => import('app/modules/404/404')})}/>
      <Route exact path={'/500'} component={asyncComponent({resolve: () => import('app/modules/500/500')})}/>
      <Route exact path={'/login'} component={asyncComponent({resolve: () => import('app/modules/login/page/LoginPage.tsx')})}/>
      <RestrictedRoute path="/dashboard" component={asyncComponent({resolve: () => import('app/modules/dashboard/page/Dashboard')})} isLoggedIn={isLoggedIn}/>
      <Redirect
        exact
        from="/"
        to="/login"
      />
    </Switch>
  );
};
const mapStateToProps = ({authentication}: IRootState) => ({
  isLoggedIn: authentication.isAuthenticated
});

export default connect(mapStateToProps, null, null, {pure: false})(PublicRoutes);

Когда я посещаю URL-адрес корневого домена localhost:3333/, я перенаправлен на маршрут login, однако я получаю пустую страницу и ошибки в консоли.

RENDERING ROUTES
VM56:37 Warning: You tried to redirect to the same route you're currently on: "/login"
window.console.error @ VM56:37
routes.tsx:9 RENDERING ROUTES
VM56:37 Warning: You tried to redirect to the same route you're currently on: "/login"
window.console.error @ VM56:37
routes.tsx:9 RENDERING ROUTES
VM56:37 Warning: You tried to redirect to the same route you're currently on: "/login"

Я получаю пять таких ошибок.

Я использую PublicRoutes следующим образом

  render() {
    const {notifications} = this.props;
    return (
      <div className="app-container">
        <LoadingBar showFastActions={false} updateTime={50} style={{backgroundColor: '#009cd8', height: '4px', zIndex: 999999}}/>
        <Notifications notifications={notifications} style={notificationsStyle}/>
        <ToastContainer
          position={toast.POSITION.TOP_LEFT as ToastPosition}
          className="toastify-container"
          toastClassName="toastify-toast"
        />
        <DashAppHolder>
          <PublicRoutes history={history}/>
        </DashAppHolder>
      </div>
    );
  }

Что не так с моим кодом, почему отображаются маршрутынесколько раз?

Спасибо

...