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

引入react-router-dom后localhost页面空白,请求技术帮助

问题分析与解决方案

核心原因及修复步骤

1. React Router DOM版本不兼容

createBrowserRouter和RouterProvider是React Router DOM v6.4及以上版本专属的新API,若你的包版本低于此范围,会直接抛出错误导致页面渲染失败。

  • 检查当前版本:在项目根目录执行命令
    npm list react-router-dom
    
  • 升级到兼容版本:
    npm install react-router-dom@latest
    

2. 清理冗余导入代码

你的App.js中导入了createRoot但完全未使用,这部分代码可直接删除,避免代码混乱:

// 移除该行无用导入
import { createRoot } from "react-dom/client";

3. 检查未使用组件的完整性

虽然当前路由未用到Login和Register组件,但如果./pages/Login.js或./pages/Register.js文件不存在,或文件内部有语法错误,会导致整个应用崩溃,进而页面空白:

  • 确认两个文件存在于指定路径
  • 检查文件内部是否有未闭合标签、语法错误等问题

4. 低版本兼容替代方案

若暂时不想升级React Router DOM版本,可改用v6基础版路由写法(兼容v6.0+):
修改App.js:

import React from "react";
import { Routes, Route } from "react-router-dom";
import Login from "./pages/Login";
import Register from "./pages/Register"

function App() {
  return (
    <div>
      <Routes>
        <Route path="/" element={<div>This is home world!</div>} />
        <Route path="/login" element={<Login />} />
        <Route path="/register" element={<Register />} />
      </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(
  <React.StrictMode>
    <BrowserRouter>
      <App />
    </BrowserRouter>
  </React.StrictMode>
);

内容的提问来源于stack exchange,提问作者Moises Leandro Gonzalez Diaz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 08:45:24