Реагировать на проблему с параметрами маршрутизатора - PullRequest
0 голосов
/ 27 мая 2019

Я попытался перенаправить параметры ": id" в ответ на дополнительный маршрут ": id / history", и ссылка на маршрут не отображала компонент при нажатии

<Switch>
     <Route path="/patients/:id" exact component={GeneralData} />
     <Route path="/patients/:id/history" component={History} />
</Switch>

Ответы [ 2 ]

1 голос
/ 27 мая 2019

Компонент Switch отображает первый маршрут, который соответствует введенному вами URL

Поскольку вы используете подстановочный знак для GeneralData Маршрута, вот так

<Route path="/patients/:id" component={GeneralData}/>

Независимо от того, что вы вводите после /patients, оно попадает в это определение подстановочного знака этого Маршрута, потому что оно принимает буквально все что угодно. Таким образом, даже если вы перейдете к /patients/4834834/history, он все равно будет удовлетворять маршруту GeneralData, который был найден первым в списке маршрутов.

Чтобы это исправить, просто переместите ваш исторический маршрут над вашим маршрутом GeneralData. Это делает так, чтобы маршрут GeneralData не отображался ни для чего, что только удовлетворяет /patients/:id. Switch сначала проверит, соответствует ли ваш URL History.

<Switch>
     <Route path="/patients/:id/history" component={History} />
     <Route path="/patients/:id" component={GeneralData} />
</Switch>
0 голосов
/ 27 мая 2019

Я думаю, что вы пропускаете exact param.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...