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

React js Route无法渲染组件 外部调用正常如何排查解决

问题根因

你使用的react-router-dom v5版本中,Redirect组件不支持嵌套Route作为子元素。你当前将登录路由的Route写在了Redirect的内部,导致Switch的路由匹配逻辑完全失效,因此组件无法正常渲染。

修复方案

将Redirect与Route作为Switch的平级子元素摆放,不要嵌套。

修正后代码

import './App.css';
import Login from './Components/Login/Login';
import { BrowserRouter as Router, Switch, Route, Redirect } from "react-router-dom";
import Protected from './Components/Common/Protected';

function App() {
  return (
    <div className="App">
      <Router>
        <Switch>
          <Redirect exact from="/" to="/Login" />
          <Route exact path="/Login" > 
            <Login /> 
          </Route>
          {/* 后续需要添加的受保护路由可以放在这里,比如:
          <Protected path="/dashboard" component={Dashboard} />
          */}
        </Switch>
      </Router>
    </div>
  );
}

export default App;

补充说明

如果后续需要添加需要登录才能访问的受保护路由,直接在Switch内部和现有Redirect、Route平级插入你引入的Protected组件即可,不要嵌套在其他路由/重定向组件内部。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 06:15:04