我使用Next.js 13和TypeScript创建了一个简单的to-do应用程序,创建了一个包含id字符串和name字符串的对象数组,然后Map列表并在Link元素中显示列表名称,其中href
设置为/listId/${list.listId}
。
//父页面:
<div className='flex flex-col gap-2 py-2 pb-4'>
{ allLists.length > 0 && allLists.map((list: IList, index: number) => (
<Link key={index} href={`/listId/${list.listId}`}
className='border border-dashed border-gray-500 text-gray-800 px-3 py-1 rounded-lg'>
<p>{ list.listName }</p>
</Link>
))}
我需要导航到特定的页面并获取该页面上的ID。但不幸的是,在预取和在listId页面上导航时,我得到了404错误...
我不是TypeScript的Maven,这是我第一次使用Next.js 13应用程序目录项目。
// ListId页面(服务器组件):
interface IParams {
listId: string
}
const ListNamePage: FC<IParams> = ({ listId }): ReactElement => {
const router = useRouter();
const { listName } = router.query;
console.log(listName);
return (
<div>ListNamePage</div>
)
}
export default ListNamePage
1条答案
按热度按时间krcsximq1#
你犯了两个错误。第一个,导致404错误的,是你的
href
。因为你定义了你的动态路由文件夹,它应该是/839402...
而不是/listId/839402...
,如下所示:第二个是你试图在页面上获取
listId
的方式;它应该如下所示。注意我简化了类型: