如何在react-router-dom中嵌套路由[重复]

Posted

技术标签:

【中文标题】如何在react-router-dom中嵌套路由[重复]【英文标题】:how to nest routes in react-router-dom [duplicate] 【发布时间】:2020-09-22 12:22:13 【问题描述】:

我有类似这样的 App.js 文件

import BrowserRouter,Switch,Route from 'react-router-dom'

<BrowserRouter>
   <Switch>
      <Route exact path="/" component=LandingPage />
      <Route path="/searchResults" component=SearchResults />
   </Switch>
</BrowserRouter>

SearchResults 看起来像这样

<Navbar />
<Switch>
   <Route path="/all" component=All />
   <Route path="/courses" component=Courses />
   <Route path="/slides" component=Slides />
</Switch>

我需要让 /searchResults/all/searchResults/coursessearchResults/slides 工作 我尝试了上述方法,但是当我转到这些路线中的任何一条时,输出都是空白的。仅呈现导航栏。

【问题讨论】:

这很有帮助***.com/questions/42984597/… 【参考方案1】:

您需要将基本路径添加到链接。

import  Switch, Route, useRouteMatch  from "react-router-dom";

const SearchResults = () => 
let  path  = useRouteMatch();
    return (
        <Switch>
            <Route path=`$path/all` component=All />
            <Route path=`$path/courses` component=Courses />
            <Route path=`$path/slides` component=Slides />
        </Switch>
    );
)

在我的示例应用程序之一中找到它

https://github.com/codegeous/react-component-depot/blob/master/src/pages/ReactBasics/index.js

【讨论】:

以上是关于如何在react-router-dom中嵌套路由[重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用链接后,在嵌套路由中未定义 React-router-dom 参数

React-router-dom:嵌套路由不起作用,而是从根组件应用程序中路由

嵌套路由(React-Router-Dom 6.0.2)未按预期工作

React-router-dom:非常简单的嵌套路由不起作用

ReactSPA - 路由机制 - react-router-dom - 基本路由 - 嵌套路由 - 传递参数 - 路由跳转

React-router-dom v4 嵌套路由不起作用