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

React Router Dom无法将Home路由设为默认页面求助

React Router Dom 默认Home路由空白问题排查

我用React Router Dom开发网站,路由功能正常,但打开网站时默认首页(Home路由)只显示空白背景,已经确认Home路由是第一个且路径为"/",求帮忙排查。

App.js

import { Home } from "./components/pages/home/home.js";
import { Nav } from "./components/pages/navbar/navBar.js";
import { Reviews } from "./components/pages/review.js";
import { About } from "./components/pages/aboutUs";
import { BrowserRouter, Routes, Route } from "react-router-dom";
import React from "react";

function App() {
  return (
    <section className="App">
      <BrowserRouter>
        <Nav />
        <Routes>
          <Route path="/" element={<Home />} />
          <Route path="/aboutUs" element={<About />} />
          <Route path="/review" element={<Reviews />} />
        </Routes>
      </BrowserRouter>
    </section>
  );
}

export default App;

home.js

import React from "react";
import "./home.css";
import Carousel from "../../../components/carrousel/carousel";

export function Home() {
  const slides = [
    "https://i.ytimg.com/vi/DCOICaqQoEY/maxresdefault.jpg",
    "https://unfilteredgamer.com/wp-content/uploads/2022/03/terraforming-mars-ares-expedition-review-header.jpg",
    "https://gamecows.com/wp-content/uploads/2022/06/Ark-Nova-Board-Game-Featured.jpg",
  ];
  return (
    <div className="container">
      <div className="home">
        <div className="home-inner">
          <Carousel slides={slides} />
        </div>
        <div className="quotes">
          <img
            src="https://ih1.redbubble.net/image.1889966854.5963/poster,504x498,f8f8f8-pad,600x600,f8f8f8.jpg"
            alt="gamer-quote-1"
          ></img>
          <img
            src="https://ih1.redbubble.net/image.967398882.3526/st,small,507x507-pad,600x600,f8f8f8.jpg"
            alt="gamer-quote-2"
          ></img>
          <img
            src="https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQ8_bOcNKvjb-NyMlFwqxOkfCPieb1CJcLImN1CsyPqtLXrk7lTn1BG_fUTso1W-SCoblo&usqp=CAU"
            alt="gamer-quote-3"
          ></img>
        </div>
      </div>
    </div>
  );
}
import React, { useState } from "react";
import { Link } from "react-router-dom";
import "./navBar.css";

export const Nav = () => {
  const [showMenu, setShowMenu] = useState(false);

  const toggleMenu = () => {
    setShowMenu(!showMenu);
  };

  return (
    <nav className="nav">
      <button className="navbar-toggle" onClick={toggleMenu}>
        <i className="bi bi-menu-button-fill"></i>
        {showMenu && (
          <div className="navbar-collapse" id="navbar-collapse">
            <ul className="navbar-nav">
              <li className="nav-item">
                <Link className="nav-link" to="/">
                  Home
                </Link>
              </li>
              <li className="nav-item">
                <Link className="nav-link" to="/review">
                  Review
                </Link>
              </li>
              <li className="nav-item">
                <Link className="nav-link" to="/aboutUs">
                  About Us
                </Link>
              </li>
            </ul>
          </div>
        )}
      </button>
    </nav>
  );
};

排查方案

1. 检查Carousel组件导入路径

home.js里导入Carousel的路径是../../../components/carrousel/carousel,先确认这个路径是否正确。如果路径写错,组件无法加载会直接导致Home组件渲染失败,页面空白。可以改成相对App.js的路径,或者配置webpack别名用绝对路径。

2. 验证Home组件是否能独立渲染

暂时注释掉Carousel组件,简化Home组件的返回内容:

return (
  <div className="container">
    <h1>Home Page</h1>
  </div>
);

如果此时页面能显示标题,说明问题出在Carousel组件或其依赖上,需要进一步排查Carousel的代码逻辑。

3. 检查CSS样式是否隐藏内容

查看home.css中的.container、.home等类是否设置了display: none、opacity: 0、visibility: hidden,或者position: absolute却没设置宽高导致内容不可见。可以暂时移除home.css的导入,看内容是否正常显示。

4. 确认React Router Dom版本兼容性

如果用的是v6版本,你的路由写法是正确的;但如果是v5及以下,需要用Switch代替Routes,且Route要通过component属性传入组件,而非element。可以查看package.json里的版本号,确保写法匹配。

5. 查看控制台错误信息

打开浏览器开发者工具(F12)的Console标签,检查是否有组件导入失败、资源加载错误、JS语法错误等提示,这些都是导致组件无法渲染的常见原因。

内容的提问来源于stack exchange,提问作者Andrea Lopez Bravo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 09:12:05