#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