我尝试使用动态路由来渲染页面使用下一个js.当用户点击url(http://localhost:3000/post/123)它应该呈现一个页面,我应该能够拉id从url使用useRouter()钩子,并显示在页面中,如下所示.这在本地开发中工作得很好,但当我在firebase上托管这个时,url返回404页面.我很困惑是什么问题.请帮助.
// [post].tsx
import React from 'react'
import { useRouter } from 'next/router'
const Details = () => {
const { query } = useRouter()
const postID = query.post
return (
<div>Post id: {postID}</div>
)
}
export default Details
package.json:
文件夹结构:
1条答案
按热度按时间drkbr07n1#
对于
URL
http://localhost:3000/post/123
,router.query
对象如下所示在本例中,您在
[ ]
中命名的名称post
将是router
返回的变量名它需要一些时间来水合,所以我建议你使用
useEffect
来捕获id。NEXT JS Dynamic Routing Documentation