ОБНОВЛЕНИЕ 2018: в учебнике хорошая теория, но ему уже два года. Проверяйте версии пакетов. За выходом нового учебника можно следить в telegram канале или twitter
На канале так же проводятся бесплатные вебинары, публикуются переводы и авторские материалы, присоединяйтесь!
IndexRedirect
Предположим, вам хочется, чтобы пользователь при заходе на сайт, попадал сразу на отображение компонента <List /> и корректного url-адреса соответственно.
Для этого удалите упоминания об IndexRoute'е и используйте IndexRedirect.
Привожу полный код:
src/routes.js
importReactfrom'react'import{Route,IndexRedirect}from'react-router'importAppfrom'./containers/App'importAdminfrom'./components/Admin'importListfrom'./components/List'importGenrefrom'./components/Genre'importReleasefrom'./components/Release'importNotFoundfrom'./components/NotFound'exportconstroutes= (<div><Routepath='/'component={App}><IndexRedirectto='list'/>{/* INDEX REDIRECT */}<Routepath='/admin'component={Admin}/><Routepath='/genre/:genre'component={Genre}><Routepath='/genre/:genre/:release'component={Release}/></Route><Routepath='/list'component={List}/></Route><Routepath='*'component={NotFound}/></div>)
Введите в браузере http://localhost:3000/ и нажмите enter.
Откроется http://localhost:3000/list
Что и требовалось доказать. Результаты сохранять не нужно, вернитесь к предыдущей версии файла. Напомню, пользователям git - это можно сделать с помощью:
git checkout src/routes.js
P.S. для нетерпеливых: если интересно, как происходит redirect - используется "хук" на событие onEnter. Мы об этом еще не говорили, но вы можете прочитать несколько абзацев на EN здесь.
P.P.S. буквально одной строкой: если вы хотите использовать редирект не "главной страницы", то используйте следующий синтаксис: