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

React配置react-router-dom时提示'Routes'未定义报错如何解决?

React路由配置报错解决方案

第一步:确认react-router-dom版本

React Router v6才新增Routes组件替代v5的Switch组件,版本低于v6会出现导入失败的问题:

  • 执行命令查看本地版本:npm list react-router-dom
  • 如果版本低于6.x,执行升级命令:npm install react-router-dom@latest

第二步:修正App组件代码

你当前的代码存在两个问题:未正确导入Routes、Route组件的组件传值写法不符合v6规范,修正后的完整代码如下:

// 必须同时导入Routes和Route
import { Routes, Route } from 'react-router-dom';

import AllMeetupsPage from './Pages/AllMeetups';
import NewMeetupsPage from './Pages/NewMeetups';
import FavoritesPage from './Pages/Favorites';

function App() {
  return (
    <div>
      <Routes>
        {/* v6要求路由对应组件通过element属性传入,不能直接作为Route子元素 */}
        <Route path='/' element={<AllMeetupsPage />} />
        <Route path='/new-meets' element={<NewMeetupsPage />} />
        <Route path='/favs' element={<FavoritesPage />} />
      </Routes>
    </div>
  );
}

export default App;

第三步:配置根路由包裹组件

需要在项目入口文件(一般为index.js)中用BrowserRouter包裹App组件,否则路由功能无法正常生效:

import React from 'react';
import ReactDOM from 'react-dom/client';
import { BrowserRouter } from 'react-router-dom';
import App from './App';

const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
  <BrowserRouter>
    <App />
  </BrowserRouter>
);

异常排查

如果完成以上步骤依然报错,执行以下操作清除缓存重新安装:

  • 删除项目根目录下的node_modules文件夹和package-lock.json文件
  • 执行npm install重新安装所有依赖
  • 执行npm start重启开发服务

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 04:57:02