
こんな感じで、react-router-domを使用するようなコードを書いてた。
import { HashRouter, Route, Switch } from "react-router-dom";
これがあれこれやってるうちにエラーになるようになった。
Module '"react-router-dom"' has no exported member 'Switch'.
翻訳としては「react-router-domにSwichが無いよ」って言ってるっぽい。
今まで普通に使えてたのにどいうこと。。。
で、ググること数時間。
どうも、react-router-domのバージョン6以降では、SwitchがRoutesになったらしい。
原因としては、何かの拍子に
npm install react-router-dom
をしていたことが原因。これだと最新バージョンはインストールされる。
なので、一旦削除してバージョン5系を再インストール
npm uninstall react-router-dom
npm install react-router-dom@5
これでエラーは消えました。
ちなみに、6系以降を使おうと思うと、単純にSwitchをRoutesに変えればいいらしい。
とはいえ、ネットに転がってるサンプルコードは5系以前を使ってるものが多いのでSwitchを使ってる。
とりあえず今は5系をインストールしておくのがいいと思う。。。