В настоящее время кажется, что вы уже установили состояние для Redirect
на частном маршруте с помощью:
<Redirect to={{
pathname: '/login',
state: { from: props.location }
}}
/>
Теперь вы можете использовать это состояние в компоненте входа для перенаправления пользователя обратно туда, откуда он пришел. Заимствование компонента входа из документов :
function LoginPage() {
let history = useHistory();
let location = useLocation();
let { from } = location.state || { from: { pathname: "/" } };
let login = () => {
fakeAuth.authenticate(() => {
history.replace(from);
});
};
return (
<div>
<p>You must log in to view the page at {from.pathname}</p>
<button onClick={login}>Log in</button>
</div>
);
}
Состояние из местоположения извлекается в переменную from
или, если она не существует (пользователь пришел на маршрут по собственному желанию при вводе URL-адреса или нажатии кнопки) по умолчанию устанавливается /
.
В дальнейшем при успешной аутентификации пользователь перенаправляется на from
.