はじめに
router.push(“/”)等で、画面遷移を実装しようとした時、
Unhandled Runtime Error
Error: NextRouter was not mounted.
とエラーが出ていしまいます。
環境
-
next: 14.0.3
解決
Next.js ver13からuseRouterのパッケージが変更されたことが原因。
これまでは、
import { useRouter } from 'next/router'
を使用していましたが、v13より、
import { useRouter } from 'next/navigation';
となりました。
他の記述は、これまで通りです。
import { useRouter } from 'next/navigation'; const App= () => { const router = useRouter(); const click = () => { router.push("/") } return ( <></> ) } export default App;
おわりに
忘れるとnext/router
を使っています。
きちんと公式のリファレンスを参照しないと、
調べてもChatGPTを使用してもV13以前のことが多く、まともな正解には辿り着きません。
参照文献
https://nextjs.org/docs/app/api-reference/functions/use-pathname
NextRouter was not mounted Next.JS
Using import { useRouter } from "next/router"; as import { useRouter } from "next/navigation"; throws "Argument of type '{ pathname: string; query: { search: st...
コメント