React Router路由无法匹配JS文件 导入模块运行报错如何解决
问题原因
代码中存在多余的无效导入语句,直接触发运行报错:
- 第3行
import { Pages } from 'react';为错误写法:React 官方包不存在名为Pages的命名导出,且整段代码中从未使用过Pages变量,属于误输入的冗余代码。
修复方法
直接删除上述无效导入行即可,修正后的完整入口文件代码如下:
import ReactDOM from "react-dom/client"; import { BrowserRouter, Routes, Route } from "react-router-dom"; import Layout from "./pages/Layout"; import Home from "./pages/Home"; import Blogs from "./pages/Blogs"; import Contact from "./pages/Contact"; import NoPage from "./pages/NoPage"; export default function App() { return ( <BrowserRouter> <Routes> <Route path="/" element={<Layout />}> <Route index element={<Home />} /> <Route path="blogs" element={<Blogs />} /> <Route path="contact" element={<Contact />} /> <Route path="*" element={<NoPage />} /> </Route> </Routes> </BrowserRouter> ); } const root = ReactDOM.createRoot(document.getElementById('root')); root.render(<App />);
后续排查项
如果删除无效代码后仍无法正常运行,按以下顺序校验:
- 确认项目已安装
react-router-dom依赖,未安装时在项目根目录执行命令npm install react-router-dom完成安装 - 确认
src/pages/目录下确实存在Layout、Home、Blogs、Contact、NoPage对应的组件文件,文件名大小写与导入语句完全一致(Linux/macOS 等大小写敏感系统下,文件名大小写不匹配会直接报模块找不到错误) - 确认Layout组件中引入并渲染了
react-router-dom提供的<Outlet />组件,否则嵌套路由的子页面内容无法正常展示
内容的提问来源于stack exchange,提问作者linhcheee
相关产品推荐
相关产品推荐

