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

为何Home.js在浏览器无内容?React路由与版本API问题求助

问题解决指南

一、确认React版本

你提到的版本10.2.4应该是react-router-dom的版本,而非React核心版本。要确认React真实版本,在项目根目录执行:

npm list react

若版本≥18,需使用createRoot;若为17及以下,ReactDOM.render仍可正常使用,但建议升级到最新稳定版。

二、改造index.js使用createRoot

如果确认是React 18,修改src/index.js如下:

import React from 'react';
import { createRoot } from 'react-dom/client';
import App from './App';
import reportWebVitals from './reportWebVitals';

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

如果是React 17,可保留原ReactDOM.render写法,若要升级到18,执行:

npm install react@latest react-dom@latest

三、解决路由异常(页面无内容+No routes matched错误)

你使用的是react-router-dom v6,但教程是两年前的(大概率基于v5),两者路由语法差异明显:

  1. v6中不再支持component属性,需改用element包裹组件
  2. v6默认启用精确匹配,无需手动添加exact
  3. 你未定义/Home路由,访问该路径自然会报错

修改src/App.js:

import React from 'react';
import Home from './pages/Home';
import './App.css';
import Navbar from './components/Navbar';
import { BrowserRouter as Router, Route, Routes } from 'react-router-dom';

function App() {
  return (
    <div className="App">
      <Router>
        <Navbar />
        <Routes>
          {/* v6标准路由写法 */}
          <Route path="/" element={<Home />} />
          {/* 新增/Home路由,匹配你的访问需求 */}
          <Route path="/Home" element={<Home />} />
        </Routes>
      </Router>
    </div>
  );
}

export default App;

四、排查页面无内容的其他可能

  1. 检查Home.js中的CSS类(home、headerContainer)是否在App.css或对应样式文件中定义了基础样式(比如宽高、背景色),否则元素可能存在但因样式问题不可见
  2. 临时注释<Navbar />组件测试,若页面恢复显示,说明Navbar组件存在报错
  3. 打开浏览器控制台「Elements」标签,查看#root节点下是否生成了DOM元素:有元素则是样式问题,无元素则是组件渲染失败

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 13:27:20