如何解决Next.js 路由:从 slug 页面推送新路由无法正确路由
假设我有 2 条路线:/video
和 /products/[id]
,所以我的 pages
文件夹包含 video.js
和 products/[id].js
。当我使用 router.push
或 Link
从 /video
导航到 /products/[id]
时,URL 更新为 /products/video
。显然这不是正确的行为。
我错过了什么?
解决方法
我认为您没有正确命名文件。
要获取 /video,您只需将 video.js 作为您的页面。
要获取/products/[id]页面,你需要有/products/[id].js文件
你不要把它命名为 products[id].js。它只是 [id].js。
所以将您的 [id].js 文件放在您的 /products 文件夹中。
然后将您的 video.js 文件放在您的 pages 文件夹中。例如 /pages/video.js 转到 /video 路线
然后 /pages/products/[id].js 将转到 /products/id。
总结:你的 pages 文件夹应该有 video.js 文件,并创建文件夹 products,并将 [id].js 文件放在你的 products 文件夹中。
,您需要将视频页面的路径提供为 /video
而不仅仅是 video
。否则,它将根据您当前所在的路径进行路由 - 您的产品页面中的路径为 /products
。
router.push('/video')
<Link href="/video">...</Link>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。