はじめに#
React 19 と Next.js 15 を使用しているプロジェクトで @elastic/react-search-ui を使おうとすると、以下のような依存関係エラーに遭遇することがあります。
この記事では、この問題の原因と解決方法を詳しく解説します。
問題の原因#
@elastic/react-search-ui@1.23.1 の peer dependency が react@">= 16.8.0 < 19" となっており、React 19 をサポートしていませんでした。
解決策#
1. パッケージのアップグレード#
2025年5月に PR #1162 がマージされ、React 19 がサポートされました。バージョン 1.24.2 以降を使用します。
2. 型定義の変更への対応#
1.24.2 では WithSearch コンポーネントの型定義が変更されました。SearchContextState の filters が Filter[] | undefined になっています。
Before(1.23.x)#
After(1.24.x)#
3. setFilter の型変更#
setFilter の型も変更されています。
呼び出し側も修正が必要です:
変更が必要なファイル例#
今回のプロジェクトでは以下のファイルを修正しました:
src/components/page/search/Range.tsxsrc/components/search/Facet.tsxsrc/components/search/Facets.tsxsrc/components/search/Filters.tsx
注意点: Next.js 16 への移行#
Next.js 16 への移行も試みましたが、多くの破壊的変更があり、追加の対応が必要でした:
- React 19.2 への依存
- middleware から proxy へのリネーム
- Turbopack がデフォルトに
- 非同期 API の強制
安定性を重視する場合は Next.js 15.5.9 での運用を推奨します。
バージョン対応表#
| パッケージ | React 18 | React 19 |
|---|
| @elastic/react-search-ui 1.23.x | ✅ | ❌ |
| @elastic/react-search-ui 1.24.2+ | ✅ | ✅ |
| Next.js 15.5.x | ✅ | ✅ |
| Next.js 16.x | - | ✅(要追加対応) |
まとめ#
@elastic/react-search-ui を 1.24.2 以上にアップグレードWithSearch の型定義変更に対応(undefined 対策)- Next.js は 15.5.9 を推奨(16 は破壊的変更が多い)
参考リンク#
作成日: 2026-01-19