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

React用Route包裹组件时站点不加载,仅BrowserRouter包裹可正常运行

问题原因

页面加载失败的核心原因是react-router-dom v6版本语法和旧v5版本不兼容:你写的是v5时代的路由写法,但项目默认安装的是最新v6版本,几个不兼容的点直接导致路由解析失败白屏:

  • v6强制要求所有Route组件必须嵌套在Routes组件内部,不能直接作为BrowserRouter的子元素,缺少Routes包裹时路由规则完全不会生效。
  • v6废弃了把页面组件放在Route标签子节点的写法,需要渲染的页面必须通过Route的element属性传入。
  • 你写的第一个Route没有声明合法的匹配规则:v6里作为根路径默认展示的首页路由,要么明确写path="/",要么加index属性标记为索引路由,否则规则无效。另外你代码里残留的`enter code here`无效字符串也会引发渲染报错。
修复方案

直接替换App.js内容为以下v6标准写法即可:

import React from 'react';
import './App.css';
// 新增导入v6必须的Routes组件
import { BrowserRouter, Routes, Route } from "react-router-dom"
import Home from './Pages/Home';
import SignUpPage from './Pages/SignUpPage';


function App() {
  return (
    <div className="App">
      <BrowserRouter>
        <Routes>
          {/* index标记代表父路径下默认匹配的首页,组件通过element传入 */}
          <Route index element={<Home />} />
          <Route path='/signup' element={<SignUpPage />} />
        </Routes>
      </BrowserRouter>
    </div >
  );
}

export default App;

如果你确实要使用v5版本的旧写法,需要先把项目里的react-router-dom版本降到v5,不过更推荐使用上面的v6标准写法,v5已经停止官方维护。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 17:18:20