2016-07-08 3 views
1

Я написал приложение, чтобы научить себя Flux и React Routers, и я застреваю на вложенных маршрутах. У меня есть список парков, и когда вы нажимаете на один из парков, он выводит страницу показа. Это отлично работает, если у меня есть маршруты, такие как:Вложение в IndexRoute

const appRouter = (
    <Router history={ hashHistory }> 
    <Route path="/" component={ App }> 
     <IndexRoute component={ AppIndex }/> 
     <Route path="parks/:parkId" component={ ParkShow }/> 
    </Route> 
    </Router> 
) 

Но это не то, что я хочу. Я хочу показать информацию о парке, который нажал на странице AppIndex. Это то, что я должен достичь этой цели:

const appRouter = (
    <Router history={ hashHistory }> 
    <Route path="/" component={ App }> 
     <IndexRoute component={ AppIndex }> 
     <Route path="parks/:parkId" component={ ParkShow }/> 
     </IndexRoute> 
    </Route> 
    </Router> 
) 

я получаю - «Внимание: [реагировать-маршрутизатор] Местоположение„парки/2“не найдено ни одного маршрута»

И - «Внимание: [ реагировать-маршрутизатор] Местоположение «/ парки/2» не найдено ни одного маршрута»

+0

Одним из решений является добавление компонента AppIndex в начало моего компонента ParkShow. Это дает мне поведение, которое я ищу, но, похоже, оно мне кажется взломанным. Я чувствую, что должен быть способ получить это поведение от самих маршрутов. –

ответ

2

маршрута внутри страницы индекса неправильный путь

const appRouter = (
    <Router history={ hashHistory }> 
    <Route path="/" component={ App }> 
     <IndexRoute component={ AppIndex }/> 
     <Route path="parks/:parkId" component={ ParkShow }/> 
    </Route> 
    </Router> 
) 

Над одним единственно правильный путь Дизайн вашего приложения в такихперемещайте содержимое AppIndex в APP и используйте this.props.children в компоненте APP. Вы должны либо показывать Appindex, либо ParkShow

+0

Это не приводит к желаемому поведению. . Желаемое поведение для отображения содержимого в AppIndex при посещении домашней страницы и сохранение в ParkShow, но не сохранение других страниц в приложении, в то время как я хочу, чтобы содержимое компонента приложения сохранялось во всем приложении , –

+0

Я разместил здесь следующий вопрос: http://stackoverflow.com/questions/38276787/how-to-nest-react-routes-in-homepage –