您不能对同一动态路径使用不同的 slug 名称 Nextjs

You cannot use different slug names for the same dynamic path Nextjs

我在基于文件夹结构的项目中使用 nextjs 的默认动态路由技术。我有一条路线是:

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

您提供的两条路线完全相同,没有任何区别。因此,它们将由单个页面处理。上面两个路由没有两个url会路由到不同的nextjs页面的例子。

[] 中编写的任何内容都将处理任何类型的值,例如 1 或 2 或与此相关的任何其他值。

您不能创建两个页面来处理同一个请求,因为 next 或其他任何人都无法知道您使用的是 route_id 还是 location_id,因为它们都是变量代表任何值。

如果你想区分它们,要么用

创建一条新路线

/route/[route_id] 而不是

/location/[location_id],或使用 queryparams 例如

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

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