Вы не можете использовать разные имена слагов для одного и того же динамического c пути Nextjs - PullRequest
0 голосов
/ 06 марта 2020

Я использую стандартную динамическую c технику маршрутизации следующего js в моем проекте, который основан на структуре папок. У меня есть маршрут:

pages/[language]/location/[location_id]

Теперь я сталкиваюсь с примером использования, где мне нужен точно такой же маршрут, кроме последнего параметра [location_id], мне нужно [route_id] здесь.

Когда я создал файл [route_id].js для этого нового маршрута, я сталкиваюсь с этой ошибкой:

 throw new Error(`You cannot use different slug names for the same dynamic path ('${previousSlug}' !== '${nextSlug}').`);

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

Route 1: pages/[language]/location/[location_id]
Route 2: pages/[language]/location/[route_id]

PS: я уже изучил это: https://github.com/zeit/next.js/issues/9081

1 Ответ

0 голосов
/ 06 марта 2020

Два предоставленных вами маршрута абсолютно эквивалентны и ничем не отличаются. Поэтому они будут обрабатываться одной страницей. Нет примера двух URL, которые будут перенаправлять на разные следующие js страницы для двух указанных выше маршрутов.

Все, что написано в [], будет обрабатывать любой тип значения, например 1 или 2, или любое другое значение для это важно.

Вы не можете создать две страницы для обработки одного и того же запроса, потому что у следующего или кого-либо еще нет возможности узнать, используете ли вы route_id или location_id, потому что это обе переменные, которые представляют любые значение.

Если вы хотите различать их, создайте новый маршрут с

/route/[route_id] вместо

/location/[location_id] или используйте queryparams например

pages/[language]/location?locationid=[location_id]

А

pages/[language]/location?routeid=[route_id]
...