我正在使用Next.JS,我想通过一个蛞蝓到我的网站。
这是我的代码:
'use client';
import { useRouter } from 'next/router';
export default function Home() {
const router = useRouter();
const { slug } = router.query;
return (
<p>Post: {slug}</p>
)
}
但是,在这样做时,我收到一个错误:未装载NextRouter。https://nextjs.org/docs/messages/next-router-not-mounted
我没有找到太多关于这个的文档,它唯一导致的是一个下一个路由器模拟包。但是我不知道这对我来说是否是正确的。
我尝试使用next/navigation,但似乎找不到任何与路由器相关的内容。我不知道还有什么别的选择。我是next.js的新手,所以如果这个问题看起来很明显,我很抱歉。
先谢谢你了。
3条答案
按热度按时间pbwdgjma1#
您不能将
'next/router'
中的路由器与新的应用程序路由器一起使用。在这种情况下,您必须使用来自'next/navigation'
(https://nextjs.org/docs/app/api-reference/functions/use-router)的路由器。但是,该路由器没有query
属性,因此您需要使用新的usePathname
钩子(https://nextjs.org/docs/app/api-reference/functions/use-pathname)您的代码应该类似于:kwvwclae2#
好吧我想出来了。
UseParams就是我要找的https://nextjs.org/docs/app/api-reference/functions/use-params
谢谢你的回复:)
okxuctiv3#
它现在应该在params属性中: