ОБНОВЛЕНИЕ 2018: в учебнике хорошая теория, но ему уже два года. Проверяйте версии пакетов. За выходом нового учебника можно следить в telegram канале или twitter
На канале так же проводятся бесплатные вебинары, публикуются переводы и авторские материалы, присоединяйтесь!
Подключаем redux
Если вы не знакомы с redux, вам поможет этот туториал
npm i --save redux react-redux
npm i --save-dev redux-logger redux-thunk
(вы всегда можете проверить версии в package.json, если что-то вдруг перестало работать. "Мир реакт" активно развивается)
Нам необходимо подговиться для решения следующей задачи:
Пользователь кликает на "Админка".
Если пользователь залогинен - пропускаем его на страницу
Если пользователь не залогинен - отправлям его на страницу логина
При чем здесь redux? Разве такую задачу мы уже не решили с помощью хука на onEnter?
Это отличный вопрос! Делайте так, как необходимо для приложения, а не просто тащите в проект все модные технологии. Тем не менее, у нашей задачи есть свои цели:
во время логина мы сделаем задержку (как будто ждем ответ от сервера), и лишь когда пришел ответ - перенаправим браузер пользователя на /admin
роутинг будет выполняться посредством store.dispatch
В итоге, решив данную задачу, у вас будет четкое понимание как сделать любой подобный запрос с редиректом, ведь по факту все сводится к одному и тому же: когда получен ответ - сделай редирект.
(код ниже выполнять не обязательно, так как можно взять исходный код в конце раздела.)
Для начала работы с нашим приложением, необходимо внести множество изменений. Для тех, кто знаком с redux - ничего нового. Тезисно и частично с кодом привожу здесь, так как, возможно вы читаете в формате книги вдали от ПК и хотите повторить какие-то моменты связанные с подключением redux в проект: