0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Next.js 開発で遭遇したエラー集とその対処法まとめ

Posted at

Next.js 開発で遭遇したエラー集とその対処法まとめ

はじめに

Next.js を使っていると、公式ドキュメントに載っていない「なんでこれで怒られるの?」というエラーに出会うことがあります。この記事では、実際に開発中に遭遇したエラーと、その原因・解決方法を整理しました。未来の自分や、同じエラーで悩んでいる人の助けになれば幸いです。

1. useSearchParams の suspense エラー

エラーメッセージ

Error: useSearchParams() is missing a suspense boundary.

原因

  • App Router で useSearchParams を使うと、<Suspense> で囲わないとエラーになる。

解決方法

import { Suspense } from "react";
import DummySearchComponent from "./DummySearchComponent";

export default function DummyPage() {
  return (
    <Suspense>
      <DummySearchComponent />
    </Suspense>
  );
}

2. params 型エラー (default export が無効)

エラーメッセージ

Type error: Page "app/(group)/(feature)/dummy/page.tsx" 
has an invalid "default" export: Type "DummyParams" is not valid.

原因

  • export default に「型」や「オブジェクト」を出してしまった。
  • page.tsx は必ず React コンポーネントを default export する必要がある。
  • 動的セグメントと型のキー名が不一致なケースも多い。

解決方法

type DummyPageProps = { params: { itemId: string } };

export default function DummyPage({ params }: DummyPageProps) {
  return <div>{params.itemId}</div>;
}

3. yarn.lock を Git 管理するか問題

問題点

  • チーム開発で yarn.lock をコミットするかどうかが分かれて混乱。
  • ビルド時の依存バージョン差異が原因でエラーが出ることも。

ベストプラクティス

  • 必ず管理する。
  • チームで lockfile の扱いを統一することで、CI/CD のビルドが安定する。

4. Docker × Next.js のポート割り当てエラー

エラーメッセージ

Error response from daemon: ports are not available: 
exposing port TCP 127.0.16.31:9000 -> 127.0.0.1:0: listen tcp4 ...: bind: can't assign requested address

原因

  • docker-compose.yml 内でポート競合が起きている。
  • 127.0.16.xx のエイリアスを Mac 環境で正しく登録できていない。

解決方法

  • Mac 用の lo0 エイリアス追加スクリプトを修正。
  • 競合しているポートを docker ps / lsof -i で確認して解放。
  • 無難に 0.0.0.0:9000:9000 と書き換えて動作確認。

まとめ

Next.js は便利だけど、型と App Router 特有のルールに振り回されることが多いです。
「default export は必ず React コンポーネント」「動的セグメントと params のキーは一致」などの鉄則を押さえておくと、エラーを潰すのがかなり楽になります。

同じように詰まった人がこの記事に辿り着いて「あ、それ俺もやったやつだ!」と笑いながら修正できれば最高です。


タグ候補

#Next.js #TypeScript #React #Docker #フロントエンド #エラー対処
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?