react-router-domからSwichが無くなってたので詰まってた話

てきとうにいろいろ

こんな感じで、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系をインストールしておくのがいいと思う。。。

Follow me!

PAGE TOP
タイトルとURLをコピーしました