要約
kotlin-react-routerを6.16.0-pre634から6.17.0-pre635にする段階でimport react.router.Route
しようとしても、見つかりませんと言われるようになる。そもそもkotlin-react-routerからはlegacyとして削除されているのでreact.router.RouterProvider
などを用いて書き直すしかない。
環境
- Ubuntu 20.04LTS
- IntelliJ IDEA 2024.1.2 (Community Edition)
- Kotlin/JS 1.9.24(IRコンパイラ)
- Kotlin Wrappers 1.0.0-pre.755
- kotlin-react-router-dom 6.23.1-pre.755
- gradle 8.4
動機
前回のライブラリ更新からほぼ1年。Kotlin 2.0も出てきたし、いい加減 Kotlin 1.8 -> 1.9 に移行しておこうと思って各種ライブラリを更新し、kotlin-wrappers
も更新の対象になった。
現象
kotlin-wrappers
の更新をすると、react.router.Route
, react.router.dom.BrowserRouter
その他諸々がないと言われてコンパイル不可になった。
調査
今回はすぐに原因となるライブラリ更新が見つかった。その元となったissueを無理矢理3行で要約すると、
- ユーザー:
Route
でpath
とelement
プロパティが使えないこと(前回の自分が記事にしたやつ)の指摘(2023/6/9)。 - 開発者: 新しいAPIを使ってください(2023/6/25)
- 開発者: Legacyは削除しました(2023/10/22)
ということで、前回のワークアラウンドは無駄になりましたとさ。
この記述を元にreact.router.RouterProvider
やreact.router.dom.createBrowserRouter
辺りを使って書き直したら動いた。
考察
GitHubの履歴によると、6.16.0-pre634から6.17.0-pre635になった2023年10月21日のことだったらしい。
改訂履歴(表現の修正などは除く)
- 2024/6/9: 作成
- 2024/7/7: 時間が取れずサンプルコードを断念し公開