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

React页面路由配置失败,遇ReactDOM.render函数报错求助

React路由配置报错:react_dom_client__WEBPACK_IMPORTED_MODULE_1__.render is not a function

问题说明

已安装react-router-dom,尝试配置页面路由时持续出现上述错误,多种方案尝试后未解决。

现有代码

index.js

import React from 'react';
import ReactDOM from 'react-dom/client';
import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';
import 'bootstrap/dist/css/bootstrap.min.css';
import { BrowserRouter } from 'react-router-dom';
import { Route, Routes } from 'react-router-dom';

ReactDOM.render(
    <React.StrictMode>
      <BrowserRouter>
        <Routes>
          <Route path="/" element={ <App /> }>
          </Route>
        </Routes>
      </BrowserRouter>
    </React.StrictMode>,
    document.getElementById('root')
  );

App.js

import React from 'react';
import ReactDOM from 'react-dom/client';
import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';
import 'bootstrap/dist/css/bootstrap.min.css';
import { BrowserRouter } from 'react-router-dom';
import { Route, Routes } from 'react-router-dom';

ReactDOM.render(
    <React.StrictMode>
      <BrowserRouter>
        <Routes>
          <Route path="/" element={ <App /> }>
          </Route>
        </Routes>
      </BrowserRouter>
    </React.StrictMode>,
    document.getElementById('root')
  );

报错信息

ERROR
react_dom_client__WEBPACK_IMPORTED_MODULE_1__.render is not a function
TypeError: react_dom_client__WEBPACK_IMPORTED_MODULE_1__.render is not a function
    at ./src/index.js (http://localhost:3000/Cordia360/static/js/bundle.js:1758:47)
    at options.factory (http://localhost:3000/Cordia360/static/js/bundle.js:67837:31)
    at __webpack_require__ (http://localhost:3000/Cordia360/static/js/bundle.js:67237:32)
    at http://localhost:3000/Cordia360/static/js/bundle.js:68480:37
    at http://localhost:3000/Cordia360/static/js/bundle.js:68482:12

解决方案

1. 修复index.js的渲染逻辑

React 18+ 废弃了ReactDOM.render,必须使用createRoot方法进行渲染,同时简化路由层级:

import React from 'react';
import { createRoot } from 'react-dom/client';
import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';
import 'bootstrap/dist/css/bootstrap.min.css';
import { BrowserRouter } from 'react-router-dom';

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

2. 重构App.js为组件文件

App.js是页面组件容器,不应包含入口渲染逻辑,移除错误代码并配置路由:

import React from 'react';
import './App.css';
import { Route, Routes } from 'react-router-dom';
// 导入你的页面组件,示例:
// import Home from './pages/Home';
// import About from './pages/About';

function App() {
  return (
    <Routes>
      <Route path="/" element={<div>首页内容</div>} />
      {/* 添加其他路由示例:
      <Route path="/about" element={<About />} />
      */}
    </Routes>
  );
}

export default App;

3. 错误核心原因

  • React 18 不再支持ReactDOM.render,必须使用createRoot方式初始化渲染
  • App.js被错误编写为入口文件,重复了index.js的逻辑,导致代码混乱与循环引用
  • 路由配置应放在App组件内部,而非入口文件的渲染层级中

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 15:22:22