Dmitry
А как правильно в реакте сделать редирект после отправки формы?
Dmitry
надо в рендере редирект делать?
Oleg
this.props.history.push("path/to/push");
Dmitry
а это кошерно?
Oleg
фполне
Oleg
import { Route, Redirect } from 'react-router'
<Route exact path="/" render={() => (
loggedIn ? (
<Redirect to="/dashboard"/>
) : (
<PublicHomePage/>
)
)}/>
Oleg
можа так
Dmitry
типа создать переменную formWasBeenSubmited и присвоить ей true после отправки формы?
Oleg
зачем
Dmitry
В курсе говорилось, что history.push не очень хорошо, потому, что разные редиректы лучше не использовать
Oleg
ну значит второй вариант без пуша
Dmitry
типа если можно. то лучше использовать <Redirect>
Oleg
ну вот и ответ на твой вопросик
Dmitry
попробую
Oleg
https://holyjs-moscow.ru/onlinefree/?utm_source=habr&utm_medium=474488&utm_campaign=holyjs19msc
Daniil
Dmitry
Dmitry
Dmitry
Так пишут?
Oleg
да
Daniil
а что смущает?
Oleg
но хз будет ли редирект, не обернутов в визроут
Dmitry
Не, всё работает
Dmitry
просто я не знаю принято ли так делать
Oleg
а ну значит выше обернуто
Daniil
)
Oleg
так и пишут
Daniil
Oleg
как хочеш так и пиши, но не забывай про принципы солид
Oleg
☝️
Dmitry
Спасибо
Daria
самураи, привет)
помогите кто-нить с роутингом
Oleg
Single-responsibility Principle
Open-closed Principle
Liskov substitution principle
Interface segregation principle
Dependency Inversion principle
Oleg
Диме пиши, он сенсей в этом деле
Oleg
Волкову
Daria
Daria
ааа
Oleg
не, Димыч не шарит наверн
Daria
аахахах
Dmitry
Чего? я недоджун)
Oleg
Дима Волков это как Димыч тока Дима Волков
Daria
Спасибо
Дима, к тебе по этому делу?
Oleg
не сы, помоги девушке)
Daria
Чего? я недоджун)
я тоже, но если ты шаришь в роутинге - мне может быть нужна твоя помощь)
Dmitry
Я помогу, если смогу
Oleg
☝️👍😎
Daria
еййй спасибо) это уже что-то
кароч дело такое
у меня есть приложение "тестирование"
есть два режима работы
для админа - админ смотрит тесты, создает тесты, отправляет тесты, фильтрует тесты - эти менюшки в сайд баре, вход в приложение через логин
для тестируемого - он просто получает ссылку на тест, вводит там нужный ему идентификатор и делает тест
Daria
Daria
Daria
или как вообще такое делают?
Dmitry
Ну если не залогинен, то на страницу логина
Dmitry
А потом по идее у пользователя в системе должна быть какая-то роль админ\аспирант. После определения роли редирект на /admin или на /aspirant
Valeriy 🗯️
или как вообще такое делают?
Мне кажеться, что лучше такое делать отдельно. Зачем простому юзеру лишний вес приложения из за админки?
Dmitry
ну да, права, права к роли обычно привязываются, роль к пользователю
Dmitry
Я думаю самым простым вариантом будет параметр у пользователя админ он или нет
Daria
пользователь вообще будет видеть свой путь, он не будет знать о существовании адмна, админ ему отправляет ссылку с его тестом
что-то типа //aspirant/{id.test}/{id.aspirant}
Daria
мне надо как-то с админом разобраться
Антон
есть проще и надежней вариант: перекидываем незнакомого пользователя на страницу Login, если есть кука - проверяем эту куку и исходя из этого перекидывать либо на admin компоненту либо на aspirant
Антон
кука проверяется беком, как и логины/пароли/роли и тд
Daria
вот я открываю компонент Апп
сейчас он так выглядит
<Switch>
<Route path='/login' render = {() => <Login />} />
<Route path='/admin' render = {() => <AdminContainer />} />
<Route path="/aspirant" render = {() => <AspirantContainer />} />
</Switch>
Oleg
уф
Daria
Oleg
😆
Oleg
в туалет ходил
Oleg
так все у тебя написано уже
Daniil
https://tylermcginnis.com/react-router-protected-routes-authentication/
Oleg
на логин если это не аспирант
Daria
на логин если это не аспирант
не, аспирант идет нахер))) он никуда не логинится
страница логина только для админа
аспирант ссылку получит с другим путем
Oleg
ну вот и првоеряеш если в урле не аспирант то открываеш логин
Daniil
Oleg
если аспирант то да нахер ево
Daria
ну на словах мне тоже понятно)) как это заисать?
Антон
можно сразу редиректить на страницу макдака о наборе персонала))
Oleg
ой все
Daniil
😂 во разошлись)
Oleg
запутола
Daniil