Как предотвратить совпадение двух маршрутов с react-маршрутизатором v4?
У меня есть следующие два маршрута: /items
и /items/buy
.
Каждый маршрут соответствует вкладке в одном представлении. Оба маршрута отображаются с точным реквизитом, но все же две вкладки помечаются как активные при переходе к /items/buy
.
Я уже пробовал использовать withRouter
, но я заметил, что изменение /items
на /items/sell
устраняет проблему, но я не хочу иметь этот маршрут.
Я понимаю, что rrv4 соответствует первой части моего маршрута /items
и другой маршрут тоже /items/buy
, но я думаю, что этого не должно произойти, если я использую exact
. Есть какие-нибудь подсказки, почему это происходит?
Ах, я забыл сказать, что уже использую переключатель.
Спасибо за вашу помощь!2 ответа:
Вам нужно поместить ваши маршруты в компонент
<Switch>
. Коммутатор отобразит только первый маршрут, который соответствует.import {Route, Switch} from 'react-router-dom'; <Switch> <Route exact path="/" component={Main} /> <Route exact path="/items" component={SomeComponent} /> <Route exact path="/items/buy" component={SomeOtherComponent} /> <Route component={NotFound} /> </Switch>