Next.js : Element type is invalid エラーについて
要約
エクスポートが問題でない場合、サーバーコンポーネントとクライアントコンポーネントの混在が影響している可能性がある。
意見はこのエリアに表示されます
Element type is invalid エラーについて
Error: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.
意訳すると以下。
エラー: 要素の型が無効です。組み込みコンポーネントの場合は文字列、または合成コンポーネントの場合はクラス/関数が必要ですが、undefinedが渡されました。コンポーネントを定義しているファイルから正しくエクスポートするのを忘れた可能性があるか、デフォルトエクスポートと名前付きエクスポートを取り違えた可能性があります。
しかし、エクスポートの問題でない場合、サーバーコンポーネントとクライアントコンポーネントの混在が影響している可能性がある。
Next.js では、デフォルトで "use client"
が指定されていないコンポーネントはサーバーコンポーネントとして扱われます。サーバーコンポーネントでは以下が利用できない。
- DOM 操作
- ブラウザ固有の API(例:
useEffect
,window
)
そのため、クライアント専用ロジックや依存関係がエラーを引き起こした可能性がある。
解決方法
dynamic
を使い動的インポートし、ssr: false
を指定することで、クライアントコンポーネントとして強制的に動作させる。
例。
Explore More
関連記事はありません。
Trends