2016-03-15 2 views
0

У меня есть следующая конфигурация маршрута, где есть компонент ShowObj и в нем несколько вкладок, показывающих разные аспекты объекта.response-router Ссылки на основе текущего маршрута

<Route path={“/obj/:id"} component={ShowObj}> 
    <Route path={“tab1”} component={Tab1} /> 
    <Route path={“tab2”} component={Tab2} /> 
    <IndexRoute component={Tab1} /> 
</Route> 

В верхней части, в моем ShowObj компоненте, я хочу сделать кнопки для перехода к следующему/предыдущему OBJ. При этом я хочу сохранить текущую вкладку, а не перейти к стандартной. I.e., если я нахожусь на obj XXX в tab2 (путь "/ obj/XXX/tab2"), и я перехожу к объекту YYY, я хочу оставаться на одной вкладке (путь "/ obj/YYY/tab2").

Поскольку маршрутизатор уже делает выбор, я надеялся, что в моем ShowObj я могу как-то точно узнать, какая вкладка выбрана. Я попытался добавить подпорку к самому маршруту, как в:

<Route path={“tab1”} component={Tab1} currentTab="tab1"/> 

, но это только кажется, будет доступна в Tab1, а не в ShowObj.

Два решения я мог думать:

  1. Изменить мои маршруты, чтобы сделать закладку также параметры
  2. Используйте маршрутизатор переход крюк, чтобы установить (глобальное) состояние на вкладке Я нахожусь в настоящее время и используйте это состояние при рендеринге (или нажатии) этих кнопок.

Есть ли более простой способ? Я что-то пропустил?

ответ

0

Я могу предложить вам получить текущее местоположение от регрессионного маршрутизатора, mobx-response-router или аналогичных библиотек, которые предоставляют текущий маршрутизатор. Или вы можете передать текущее местоположение в контекст и получить его оттуда

Смежные вопросы