我正在使用应用程序目录结构开发Next.js应用程序。在我的应用程序中,我有一个名为itemDetail的页面,它显示特定项的详细信息。但是,我想自定义URL,使其看起来像/items?search=[id]而不是默认的/itemDetail/[id]。
我尝试在我的next.config.js中使用Next.js Router的rewrites()函数,如下所示:
// next.config.js
module.exports = {
async rewrites() {
return [
{
source: '/items?search=:id',
destination: '/itemDetail/:id',
},
];
},
};
字符串
在我的itemList页面中,我使用以下链接导航到itemDetail页面:
// itemList.tsx
import Link from 'next/link';
// Inside the component
<Link href={`/items?search=${item.id}`} >{item.title}</Link>
型
预期结果:
当我访问自定义URL /items时,我希望?search=[id],它将正确地重定向到具有相应项目ID的itemDetail页面。然而,重定向并没有像预期的那样工作,我遇到了自定义URL模式的问题。
请求帮助:
我将感谢任何帮助,指导或建议,如何正确地实现这个自定义的URL模式使用Next.js路由器在我的应用程序目录结构。谢谢你,谢谢
3条答案
按热度按时间kiayqfof1#
在itemDetail页面中,您需要执行以下操作:
字符串
https://nextjs.org/docs/app/api-reference/functions/use-search-params
如果你想知道更多,这是这个函数的文档链接。
vcirk6k62#
这是我的解决方案
字符串
xpcnnkqh3#
@ugur_sa我删除了[id]文件夹,并将里面的页面.tsx移动到itemDetail中,并且正在工作!
Thanks!