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

React Router配置路由后组件不渲染 直接引入组件正常

故障原因

直接返回Users组件可以正常渲染,说明组件本身没有问题,故障来自v6及以上版本react-router-dom的API适配问题:该版本存在大量不兼容v5的破坏性变更,当前代码沿用了v5的旧写法,导致路由规则不生效,核心错误点如下:

  • v6要求所有Route组件必须嵌套在Routes组件内部,不能直接作为Router的子节点;同时v6默认采用路径精确匹配规则,已经移除了exact属性,无需额外声明。
  • v6中Route不再通过子节点接收要渲染的组件,统一使用element属性传入待渲染的React元素,原来写在Route标签内的<Users />不会被识别渲染。
  • Navigate是路由重定向组件,不能直接裸放在Router下与Route平级,否则会触发无条件重定向,扰乱路由匹配逻辑。
修复方案

调整路由写法适配v6版本API即可,正确代码如下:

import React from "react";
import { BrowserRouter as Router, Routes, Route, Navigate } from "react-router-dom";
import Users from "./user/pages/Users";

function App() {
  return (
    <Router>
      <Routes>
        <Route path="/" element={<Users />} />
        {/* 兜底重定向:匹配所有未定义路径跳转至首页 */}
        <Route path="*" element={<Navigate to="/" />} />
      </Routes>
    </Router>
  );
}

export default App;

补充说明:如果需要配置重定向规则,必须将Navigate放入对应Route的element属性中,通过路径匹配规则触发重定向,不要直接在路由容器外单独使用该组件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 14:12:16