Как сопоставить аналогичные условия маршрутизации на одном пути в реакции-маршрутизаторе? - PullRequest
0 голосов
/ 01 февраля 2019

У меня есть компонент с именем Details, и маршрут для него выглядит следующим образом:

const appRoutes=[
  { path: "/details/:id", component: Details }
]

Теперь, если пользователь пытается получить доступ только к маршруту "/ details", я хочу перенаправить его навнешний URL, скажем, "https://www.google.com". В настоящее время я делаю это, добавляя следующее сразу после строки выше в appRoutes.

`{ path: "/details", component: () => window.location.assign("https://www.google.com") }`

Есть ли лучший способ сделать это водна строка вместо двух, так что мне не нужно указывать регистр для /details и details/:id отдельно, как я делаю здесь? Ожидаемое поведение здесь состоит в том, что если маршрут равен details/:id, то визуализировать Details компонента и, если это просто details, отправьте их на внешний URL.

1 Ответ

0 голосов
/ 01 февраля 2019

По определению вашей идеи, это отдельные маршруты.Так что лучше всего использовать отдельные операторы маршрута для их определения.Во всяком случае, это просто делает ваш код более декларативным и понятным для других читателей.

Я бы порекомендовал передать exact: true на маршрут "/details" и поместить это до вашего"/details/:id" маршрут.React Router легче решить, какой маршрут показывать, когда будут определены ваши точные маршруты перед маршрутами на основе параметров.

Надеюсь, это поможет!

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