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

React-Router组件无法显示,路由匹配提示无element错误求助

问题排查与解决方案

核心问题

你的代码存在路由标签语法错误,导致React-Router无法正确解析路由配置,触发了"Matched leaf route at location "/dashboard" does not have an element"的错误。具体是App.js中每个<Route>标签后面多写了一个冗余的</Route>闭合标签,破坏了路由结构的合法性。

修复步骤

修改App.js中的路由配置部分,移除多余的</Route>标签:

修复后的App.js代码

import React, { useState } from 'react';
import './App.css';
import { BrowserRouter, Route, Routes } from 'react-router-dom';
import Dashboard from './components/Dashboard/Dashboard';
import Preferences from './components/Preferences/Preferences';
import Login from './components/Login/Login';

function App() {
  const [token, setToken] = useState();

  if(!token) {
    return <Login setToken={setToken} />
  }

  return (
    <div className="wrapper">
      <h1>Application</h1>
      <BrowserRouter>
        <Routes>
          {/* 移除每个Route后多余的闭合标签 */}
          <Route path="/dashboard" element={<Dashboard/>} />
          <Route path="/preferences" element={<Preferences/>} />
        </Routes>
      </BrowserRouter>
    </div>
  );
}

export default App;

效果说明

修复后访问http://localhost:3000/dashboard时,页面会同时显示:

  • App组件中的<h1>Application</h1>
  • Dashboard组件中的<h2>Dashboard</h2>

这是因为你的App组件已将公共内容(Application标题)放在<BrowserRouter>外部,路由匹配后会将对应组件渲染在<Routes>位置,自然会和公共内容一同展示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 07:15:58