реагируйте на то, что 2 похожих маршрута перекрываются и показывают только 1

#reactjs #react-router-dom

Вопрос:

 <Route path={`/games/mods`} /> // 1st

<Route path={`/games/mods/files`} /> // 2nd
 

Здесь у меня есть 2 простых маршрута, которые являются относительными/динамическими, я не могу добавить к ним параметр «точный», потому что, когда пользователь нажимает на игру, 1-й путь становится таким /games/mods/Halo , поэтому, если он точный, он ничего не покажет… проблема в том, что когда пользователь переходит на games/mods/files/Halo 1-й маршрут, он активируется, а 2-й игнорируется, что я могу сделать?

Ответ №1:

Ну, это кажется глупым ответом, но стоит попробовать. Просто измените порядок, это может вам помочь.

 <Route path={`/games/mods/files`} /> // 1st

<Route path={`/games/mods`} /> // 2nd
 

Ответ №2:

Вы можете написать свои маршруты следующим образом:

1-й Подход:

Попробуйте обернуть свои маршруты внутрь Switch и изменить последовательность ваших маршрутов

 <Switch>
  <Route path={`/games/mods/files`} /> // 1st
  <Route path={`/games/mods`} /> // 2nd
</Switch>
 

2-й Подход:

Получите доступ Halo к своему маршруту /games/mods/Halo , написав свой маршрут как /games/mods/:name .

 <Switch>
  <Route path={`/games/mods/files/:name`} /> // 1st
  <Route path={`/games/mods/:name`} /> // 2nd
</Switch>
 

Ознакомьтесь с Route Props документацией: https://reactrouter.com/web/api/Route/route-props