Как сделать перенаправление на исходную страницу после авторизации React
У меня есть на сайте admin панель, в ней есть авторизация.
Мне нужно сделать так, чтобы когда я захожу вручную (через строку поиска браузера, вводя прямой адрес) на страницу, к примеру, редактирования пользователя - меня сначала переводило на страницу авторизации, когда я не авторизован, а потом, когда авторизация успешна мне нужно, чтобы меня перенесло редиректом на страницу, которую я вводил с самого начала до редиректа на страницу авторизации, т.е. на страницу редактирования пользователя.
Всё это нужно сделать на последних версиях экосистемы React и react-router.
Ответы (2 шт):
Можно воспользоваться Redirect из библиотеки react-router:
import { Redirect } from "react-router"
const YourComponent = () => {
const [state, setState] = setState({ redirect: false })
// достаточно поменять значение state
// что бы произошел redirect
if (state.redirect) {
return <Redirect push to="/signup" />
}
return <div>Ваш компонент<div/>
}
В дополнение к ответу от @Vasily:
Redirect с push добавляет адрес в history, значит, по идее, можно использовать history.goBack(), чтобы вернуться обратно, по событию удачного логина.
import { useHistory } from 'react-router-dom'
...
const history = useHistory()
...
history.goBack()