Перенаправление на тот же маршрут входа в React

#javascript #reactjs #react-router #react-router-v4

#javascript #reactjs #react-маршрутизатор #react-router-v4

Вопрос:

Я пытаюсь создать частный маршрут, который при входе пользователя в систему будет обновляться и перенаправляться на тот же компонент после входа в систему через / authentication route или, если он уже вошел в систему, перейдите к компоненту напрямую

 import React, { useContext, useEffect } from "react";
import { Route, Redirect } from "react-router-dom";
import AuthContext from "../auth/AuthContext";
import Layout from "../layout/Layout"

const PrivateRoute = ({ component: Component, ...rest }) => {
  const authContext = useContext(AuthContext);

  const { isAuthenticated } = authContext;

  return (
    <Route
      {...rest}
      render={props =>(
        <Layout>
        {!isAuthenticated ? (
          <Redirect to={`/authentication?redirect=${props.location.pathname}${props.location.search}`} />
        ) : (
          <Component {...props} />
        )}
        </Layout>
      )}
    />
  );
};

export default PrivateRoute;

  

/аутентификация — это маршрут, который ведет на страницу входа.

В настоящее время эта программа работает нормально, пока не перейдет к правильному маршруту.

Например: http://localhost:3000/authentication/?redirect=/live

но когда пользователь входит в систему через это … он не перенаправляет на / live и просто остается там.

Что не так?

Комментарии:

1. Можете ли вы показать основной компонент, в котором вы вызываете частный маршрут?

2. <Точный путь маршрута =»/» component={Home}/> <Точный путь частного маршрута =»/ live-market» component={LiveMarket}/> <Точный путь частного маршрута =»/ a» component ={a}/>{Профиль}/> <Точный путь маршрута = компонент «/аутентификация»={Регистрация}/> @Muneeb

3. Итак, проблема в том, что когда пользователь входит в /authenticated систему, страница остается там и не перенаправляется на /live ? Или когда пользователь входит /live в систему, страница не перенаправляется на целевой компонент?

4. @Muneeb да, он не перенаправляет на live