我在我的项目中使用基于文件夹结构的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或与此有关的任何其他值。
您无法创建两个页面来处理同一请求,因为下一个或其他任何人都无法知道您正在使用route_id还是location_id,因为这两个变量都代表任何值。
[如果要区分它们,请使用]创建一条新路线>
/route/[route_id]
代替
[/location/[location_id]
,或使用queryparams
例如
pages/[language]/location?locationid=[location_id
]
和
pages/[language]/location?routeid=[route_id]