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

React Route路由失效,预览无报错,请求技术协助

React Router 页面无法正常渲染问题排查解决

你的代码采用了 React Router v6,但写法仍沿用 v5 的旧规范,这是导致页面无内容渲染且无报错的核心原因,具体问题及修复方案如下:

问题点分析

  • Route 组件用法错误:React Router v6 中,Route 不再支持直接嵌套子组件,必须通过 element 属性传入要渲染的元素。你直接将 <Nav> 和 <Home> 放在 <Route> 标签内部,v6 无法识别这些内容,因此页面没有渲染任何内容。
  • exact 属性已废弃:v6 中所有路由默认都是精确匹配,exact 属性已被移除,保留它不会报错,但属于冗余代码。

修复后的完整代码

import React from 'react';
import ReactDOM from 'react-dom/client';
import { BrowserRouter, Route, Routes } from 'react-router-dom';
import Home from './pages/home';
import Nav from './components/nav';

const root = ReactDOM.createRoot(document.querySelector('.app'));
root.render(
    <React.StrictMode>
       <BrowserRouter>
            <Routes>
                <Route path='/' element={
                    <>
                        <Nav />
                        <Home /> 
                    </>
                } />
            </Routes>
        </BrowserRouter>
    </React.StrictMode>
);

优化建议

如果需要在多个路由页面中共享导航栏,更合理的方式是将 <Nav> 放在 <Routes> 外部,这样所有路由页面都会默认显示导航栏,代码结构更清晰:

import React from 'react';
import ReactDOM from 'react-dom/client';
import { BrowserRouter, Route, Routes } from 'react-router-dom';
import Home from './pages/home';
import Nav from './components/nav';

const root = ReactDOM.createRoot(document.querySelector('.app'));
root.render(
    <React.StrictMode>
       <BrowserRouter>
            <Nav />
            <Routes>
                <Route path='/' element={<Home />} />
            </Routes>
        </BrowserRouter>
    </React.StrictMode>
);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 04:52:34