Реагировать на столкновение маршрутов, когда я использую дополнительный маршрут для моей главной страницы - PullRequest
0 голосов
/ 27 апреля 2020

вопрос может показаться запутанным, поэтому позвольте мне объяснить его вам, в основном у меня есть несколько таких маршрутов, как

<Route exact path="/:city?" component={HomePage} >

</Route>

<Route path="/Register1" component={register1}>

</Route>

<Route path="/Register2" component={register2}>

</Route>

, поэтому главная страница необязательного параметра в том, что в моем заголовке есть часть, где Вы можете выбрать свой город, и на основе этого параметра будет вызываться api, и страница будет перерисовываться с новым контентом, поэтому проблема, с которой я здесь сталкиваюсь, заключается в том, когда я хочу go к другому маршруту, что-то как /register1/ он считает его городом, поэтому вызывает api и не идет по тому маршруту, который я ожидал, и я могу использовать что-то подобное, например

<Route exact path="/province/:city?" component={HomePage} >

</Route>

, но так как это моя главная страница, кажется, немного, так есть ли способ, которым я могу справиться с этим, не меняя другие мои маршруты, такие как /register1 и так далее?

1 Ответ

1 голос
/ 27 апреля 2020

Что происходит, так это то, что React Router соответствует маршруту в том порядке, в котором вы его написали. Таким образом, когда он / путь Register2 соответствует первому регулярному выражению маршрута. Вы можете изменить порядок своих маршрутов, указав маршруты с динамическими параметрами c последними, и обернуть их с помощью Switch, который будет отображать только 1 маршрут

<Switch>
    <Route path="/Register1" component={register1} />
    <Route path="/Register2" component={register2} />
    <Route exact path="/:city?" component={HomePage} />
</Switch>
...