您不能对同一动态路径使用不同的 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]
我在基于文件夹结构的项目中使用 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]