React路由默认路径空白页问题:需依次渲染Header与Home组件
问题原因与解决方案
你的代码在React Router v6环境下无法正常渲染,核心问题是Route组件的用法不符合v6规范:
- React Router v6彻底移除了Route标签内部嵌套子元素的写法,必须通过
element属性传入要渲染的JSX内容。 - 旧写法(v5及更早)的嵌套子元素会被v6忽略,导致页面无内容显示。
修正后的代码
import React from "react"; import "./App.css"; import { BrowserRouter as Router, Routes, Route } from "react-router-dom"; import Home from "./Home"; import Header from "./Header"; function App() { return ( <div className="app"> <Router> <Routes> {/* 使用element属性传递要渲染的组件 */} <Route path="/" element={ <div> <Header /> <Home /> </div> } /> </Routes> </Router> </div> ); } export default App;
补充说明
- 用
<div>包裹<Header>和<Home>能保证两个组件上下排列(默认块级元素布局),也可以用React片段<>替代<div>来减少DOM层级。 - 同时要确认
Header和Home组件本身没有语法错误、导出错误等问题,这类问题也会导致页面白屏。
内容的提问来源于stack exchange,提问作者Banoth Bikshapathi
相关产品推荐
相关产品推荐

