В настоящее время я работаю над проектом, в котором мне нужно настроить некоторую (на мой взгляд) сложную маршрутизацию с React Router . Я начал использовать его только неделю go, и в этот момент я поражен, так как не уверен, как это сделать.
Мне хотелось бы иметь рабочий скелет для работы, где я могу реализовать реальный лог c вызовов API для получения пользовательских данных и так далее. Следовательно, фиктивная аутентификация.
Дополнительная информация: я буду использовать UI материала для разработки приложения.
https://codesandbox.io/s/sleepy-haze-1ug25?file= / src / App. js
1. Структура
StartContent
(доступно только при выходе из системы)
LogIn
(необходимо показать первым) SignUp
ForgotPassword
MainContent
(доступно только при входе в систему, ссылки находятся внутри боковой панели)
Overview
(должен отображаться первым) Cashbacks
BankNew
BankExisting
Transactions
Settings
FAQ
LogOutButton
FooterContent
(всегда доступно, но только если выбрано, ссылки находятся внутри Footer
компонент)
Imprint
TermsAndConditions
PrivacyPolicy
2. Пользовательский поток
Пользователь должен войти в систему, компонент LogIn
- первое, что показывает. Это дочерний компонент StartContent
, который содержит LogIn
, SignUp
и ForgotPassword
. Пользователь может перемещаться между тремя компонентами.
После входа в систему StartContent
больше не доступен, и отображаются Navigation
и MainContent
. Navigation
будет содержать другой компонент с именем SideDrawer
, который откроет боковую панель, чтобы пользователь мог выбирать и перемещаться. Для простоты я изменил пример с React Router .
При выходе из системы снова будет доступно только содержимое StartContent
, и сначала будет отображаться LogIn
.
Компонент Footer
должен быть всегда доступен, независимо от того, вошел он в систему или нет. Через него пользователь может получить доступ к FooterContent
.
3. Вопросы
На данный момент я могу получить доступ только к PrivateRoute
, нажав на соответствующую ссылку. Как настроить маршрутизацию, чтобы сначала показывать LogIn
, когда не вошел в систему? Я не хочу нажимать на эту ссылку, чтобы попасть туда и хотел бы от нее избавиться.
После входа в систему появляется боковая панель и кнопка выхода из системы работает нормально, но как только я выберите один из маршрутов MainContent
s, боковая панель исчезнет и контент не будет отображаться. Как я могу это исправить? Сама по себе боковая панель работает нормально.
Footer
компонент всегда должен быть доступен. Через него вы можете получить доступ к детям FooterContent
. Как настроить его так, чтобы он работал независимо от того, вошел я в систему или нет?
Большое спасибо за то, что прочитали и нашли время помочь мне, я действительно ценю это!
Если вам нужна дополнительная информация или если что-то не понятно, пожалуйста, дайте мне знать. Я знаю, что это много ...