位置“/”的匹配叶路由没有元素

Posted

技术标签:

【中文标题】位置“/”的匹配叶路由没有元素【英文标题】:Matched leaf route at location "/" does not have an element 【发布时间】:2021-12-19 13:17:44 【问题描述】:

。这意味着默认情况下它将呈现一个空值,从而导致一个“空”页面

//App.js File

import  BrowserRouter as Router, Routes, Route  from 'react-router-dom';
import Home from './pages/Home';
// import ReactDOM from "react-dom";


const App = () => 
  return (

    <Router >
      <Routes>

        <Route path="/" component= Home ></Route>
      </Routes>
    </Router>


  )


export default App;

**我的任何反应路由器相关代码都不起作用我不知道为什么当我开始在程序中插入一些路由时会发生它所以它显示这个错误**

【问题讨论】:

【参考方案1】:

在 V6 中,您不能再使用 component 属性。它被替换为element

<Route path="/" element=<Home />></Route>

更多信息请关注migration doc。

【讨论】:

谢谢兄弟我花了两天时间解决这个错误我从心底里感谢你。 @user16102215 不要忘记接受答案。【参考方案2】:

我有同样的错误,但我的修复略有不同 我拼错了元素。

<Route exact path='/MyGames' elemtent=<MyGames/>/>

这是它在浏览器控制台中给我的错误

Matched leaf route at location "/MyGames" does not have an element. This means it will render an &lt;Outlet /&gt; with a null value by default resulting in an "empty" page.

【讨论】:

你说得对,在当前版本组件不起作用,我使用元素并为我工作【参考方案3】:

在 V6 中,您不能再使用 component 属性了。它必须替换为 element

import './App.css';
import  BrowserRouter as Router, Route, Routes  from "react-router-dom";
import Home from './pages/Home';

 function App() 

  return 
  <div className="App">
   <Router>
    <Routes>
     <Route path="/" element=<Home />></Route>
    </Routes>
   </Router>
  </div>;
 

 export default App;

【讨论】:

【参考方案4】:

在版本 6 中:

组件替换为element,需要关闭"&lt;/Route&gt;"

 <Route exact path="/" element=<AddTutorial />></Route>

https://reactrouter.com/docs/en/v6/getting-started/overview

【讨论】:

【参考方案5】:

首先请从package.json 文件中检查您的react-router-dom 版本。如果它高于版本6,您应该这样做。

import './App.css';
import  BrowserRouter as Router, Route, Routes  from "react-router-dom";
import Home from './pages/Home';

 function App() 

  return (
  <div className="App">
   <Router>
    <Routes>
     <Route path="/" element=<Home />></Route>
    </Routes>
   </Router>
  </div>
 );
 

 export default App;

【讨论】:

【参考方案6】:

很简单:

    使用元素代替组件 像这样包装您的组件: 而不是 Home

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。【参考方案7】:

我遇到了同样的问题。用元素替换组件,它就起作用了。

替换这个:

<Route path="/" component=HomePage exact />

用这个:

<Route path="/" element=<HomePage/> exact />

【讨论】:

替换这个:空的?

以上是关于位置“/”的匹配叶路由没有元素的主要内容,如果未能解决你的问题,请参考以下文章

React-router-dom 渲染道具没有返回任何组件

后退按钮后反应路由器“历史”和“位置”不匹配

MVC Preview 4 - 路由表中没有路由与提供的值匹配

路由错误克隆目录后没有路由匹配 [GET] "/logout"

路由控制

ActionController::UrlGenerationError,没有路由匹配