我在我的项目中使用基于文件夹结构的 nextjs 默认动态路由技术。我有一条路线是:
pages/[language]/location/[location_id]
现在我遇到一个用例,除了最后一个参数之外,我需要与上面的路由完全相同[location_id]
, 我需要[route_id]
here.
当我创建一个文件时[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 https://github.com/zeit/next.js/issues/9081
您提供的两条路线完全相同,没有任何不同。因此,它们将由单个页面处理。对于上述两个路由,没有两个 url 将路由到不同的 nextjs 页面的示例。
任何写在[]
将处理任何类型的值,例如 1 或 2 或任何其他值。
您不能创建两个页面来处理相同的请求,因为下一个页面或其他任何人都无法知道您是否使用的是route_id或location_id,因为这些都是代表任何值的变量。
如果您想区分它们,请使用以下命令创建新路线
/route/[route_id]
代替
/location/[location_id]
,或使用queryparams
e.g
pages/[language]/location?locationid=[location_id]
And
pages/[language]/location?routeid=[route_id]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)