はじめに
今回は Next.js を始めた直後にぶつかった話です。
公式の解説ページにすぐに飛べたので、解決はすぐにしましたがちょっとわなですよね、というお話です。
なにがどうした?
🐤「まずは試しにボタンを押したらページ遷移するようにするぞ!」
🐤「なるほど、useRouter()
ってやつでpush()
したらいいんだな!」
🐤「さあ、確認するぞ、ぽちー」
🐤「……???」
おわかりいただけたでしょうか……。
公式のuseRouter
のサンプルコードを改めてみて見ましょう。
概ね流れは同じだと思います。
が、import をよく見てみてください。
next/router
ではなく、next/navigation
を使うのが正しかったのです……!!
エラー文で検索をかけるとすぐに Next.js 公式のページを見つけられました。
おわりに
next/router
とnext/navigation
が候補にあったので、next/router
を選んでしまったことによるエラーでした。
🐤「2 個出てきたな……。next/router
とnext/navigation
……useRouter
だしnext/router
かな?違ったら分かるし、ぽちー」
🐤「お! エラー出ないしこっちであってたみたい! やったー!」
という流れで完全に術中に陥りました。
VSCode の候補でnext/router
が並ぶと名前が近いのでそっちを選んじゃう、あるあるだと思います!