React引入react-router-dom报错ReferenceError: Home is not defined怎么解决
错误原因与解决方法
可能的原因1:文件路径大小写不匹配
你代码里写的是import Home from "./Pages/Home";,如果你的实际文件夹名是小写的pages而不是大写的Pages,在类Unix系统(macOS、Linux)和线上部署环境下,路径大小写是严格区分的,会导致Home组件导入失败,从而抛出未定义的错误。
- 解决方法:检查本地文件夹命名,确保导入路径的大小写和实际文件结构完全一致,推荐统一用小写命名文件夹,改为
import Home from "./pages/Home";即可。
可能的原因2:文件存放位置错误
如果你的Pages文件夹没有和App.js放在同一级目录,也会导致导入失败。比如App.js在src根目录,而Pages文件夹放在了src/components目录下,路径就会出错。
- 解决方法:调整导入路径匹配实际文件位置,或者把Pages文件夹移动到和App.js同级的src根目录下。
可能的原因3:React Router版本不兼容导致的报错误判
你现在的写法是React Router v5的写法,如果你安装的是v6版本的react-router-dom,虽然直接报错一般不会提示Home未定义,但部分编译环境的错误提示可能出现偏差。v6版本要求所有Route组件必须包裹在Routes组件内,且渲染组件的prop从component改为了element,对应需要调整App.js的代码:
import { BrowserRouter, Routes, Route } from "react-router-dom"; import "./App.css"; import Header from "./components/Header"; import Home from "./Pages/Home"; import About from "./Pages/About"; import Profile from "./Pages/Profile"; function App() { return ( <BrowserRouter> <div className="App"> <Header /> <Routes> <Route path="/" element={<Home />} exact /> <Route path="/about" element={<About />} /> <Route path="/profile" element={<Profile />} /> </Routes> </div> </BrowserRouter> ); } export default App;
临时异常解决方法
如果确认路径和代码都没问题,大概率是开发服务的热更新缓存异常,直接终止本地开发服务,重新运行npm start或者yarn start重启即可。
内容的提问来源于stack exchange,提问作者Ariton
相关产品推荐
相关产品推荐

