问题原因,版本问题。
v5 Switch可以使用,v6升级后需要调整对应方法
少し古いガイドラインに沿ってアプリ制作をしていたら、いきなりSwitchがないというエラー。
react-router-domのバージョンが原因。v6以降はSwitchがRoutesになり書き方に変更点が数カ所。
①v5に戻す、②v6の書き方へ変更するの2種類の対処法をまとめました。
対処法①
バージョンをv5に戻す
以下のコマンドで、現行バージョンをアンインストールして、v5をインストールし直す。
npm uninstall react-router-dom
npm install react-router-dom@5.2.0
対処法②
Switch → Routesに変更
index.jsx<変更前>
import React from 'react';
import ReactDOM from 'react-dom';
import { Provider } from 'react-redux';
import { createStore } from 'redux';
import { BrowserRouter, Route, Switch } from 'react-router-dom';
import App from './components/app';
const store = createStore()
ReactDOM.render(
<Provider store={store}>
<BrowserRouter>
<Switch>
<Route path="/channels/:channel" component={App} />
</Switch>
</BrowserRouter>
</Provider>,
document.getElementById("root");
);
index.jsx<変更前>
import React from 'react';
import ReactDOM from 'react-dom';
import { Provider } from 'react-redux';
import { createStore } from 'redux';
import { BrowserRouter, Route, Routes } from 'react-router-dom';
import App from './components/app';
const store = createStore()
ReactDOM.render(
<Provider store={store}>
<BrowserRouter>
<Routes>
<Route path="/" element={<App />} />
</Routes>
</BrowserRouter>
</Provider>,
document.getElementById("root");
);
- importの変更
- Switch→Routesに変更
- component→element
- {App}→{}

本文介绍了如何在从react-router-dom v5升级到v6时,正确处理Switch到Routes的转换问题,提供了解决方案:回退至v5版本或更新代码结构。
487

被折叠的 条评论
为什么被折叠?



