You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Router应用运行报错:找不到Switch组件求助

React Router 编译错误:找不到Switch组件的解决方法

问题原因

你遇到的错误是因为React Router v6 已经移除了Switch组件,改用Routes组件替代,同时Route组件的使用方式也有更新。你的代码里还在使用v5的Switch语法,所以编译报错。

解决方案

1. 修改组件导入和路由结构

将App.js中的Switch替换为Routes,并更新Route的写法(v6中Route需要通过element属性传入组件,不再支持子组件形式):

修改后的App.js代码:

import React from 'react'; 
import Home from './Home' 
import ExpenseEntryItemList from './ExpenseEntryItemList' 
import ExpenseEntryItemForm from './ExpenseEntryItemForm' 
import './App.css'
// 替换Switch为Routes
import {BrowserRouter as Router, Link, Routes, Route} from 'react-router-dom'

function App() { 
    return ( 
        <Router> 
            <div> 
                <nav> 
                    <ul> 
                        <li> <Link to="/">Home</Link> </li> 
                        <li> <Link to="/list">List Expenses</Link> </li> 
                        <li> <Link to="/add">Add Expense</Link> </li> 
                    </ul> 
                </nav> 
                {/* 用Routes替代Switch */}
                <Routes> 
                    {/* Route改用element属性传入组件 */}
                    <Route path="/list" element={<ExpenseEntryItemList />} /> 
                    <Route path="/add" element={<ExpenseEntryItemForm />} /> 
                    <Route path="/" element={<Home />} /> 
                </Routes> 
            </div>
        </Router> 
    ); 
} 

export default App;

2. (可选)降级到React Router v5

如果你想继续使用Switch语法,可以卸载当前版本,安装v5版本:

# 卸载v6
npm uninstall react-router-dom
# 安装v5.3.0
npm install react-router-dom@5.3.0

安装后不需要修改原有代码,即可正常编译运行。

内容的提问来源于stack exchange,提问作者44r0n

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 17:57:14