NextRouter未挂载报错求助:useRouter使用异常问题
解决NextRouter was not mounted错误
- 给Header组件加客户端指令:
useRouter只能在客户端组件中使用,打开src/app/component/header/Index.tsx,在文件最顶部添加'use client'——App Router下的组件默认是服务器组件,服务器环境里无法挂载路由实例。 - 排查异常链接的实现:对比正常链接和异常链接的代码,看看异常链接是不是用了
useRouter.push而非<Link>组件?如果只是跳转需求,优先用next/link导出的<Link>组件,它会自动处理路由挂载状态,比手动调用路由方法更稳定。 - 规范
useRouter调用:确保useRouter()在组件顶层直接调用,别嵌套在useEffect、条件判断或者其他钩子内部,React要求钩子必须在渲染阶段顶层执行。 - 检查组件嵌套关系:确认Header组件是不是被某个服务器组件直接渲染了?如果是,即便Header加了客户端指令,也要确保父组件没有在服务器端强制渲染导致路由实例未初始化。
内容的提问来源于stack exchange,提问作者Artur Santana
相关产品推荐
相关产品推荐

