当前位置: 首页 > 知识库问答 >
问题:

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

谢旻
2023-03-14

我有类似这样的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>

我需要使/search ch结果/所有/search ch结果/课程搜索结果/幻灯片工作
我尝试了上述方法,但输出是空白的,当我去任何这些路线。只有Navbar被渲染。

共有1个答案

仰经武
2023-03-14

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

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路由器dom v4中的多个嵌套路由 如何在React路由器v4中嵌套路由 我也有同样的问题。 https://reacttraining.com/react-router/web/guides/quick-start促进react-router-dom 此外,人们发现最好在一个文件中列出路由,而不是在组件内部。 有人提到:https://github.c

  • 问题内容: 有没有办法在React Router v4中嵌套路由? 这有效: 这不是: 客户组成部分: 问题答案: 到目前为止,我发现的最佳模式。 我可以继续将其嵌套在组件中,并且一切都很好,包括hmr(如果使用webpack,请不要忘记设置为)

  • 问题内容: 我在react-router-dom中需要多个嵌套路由 我正在使用v4的react-router-dom 我有我的 我需要像这样渲染的组件 Home组件包含一个Page1,Page2和Page3组件共有的Header组件,但在Login和About中不存在。 我的js代码看起来像这样 我希望Login组件仅在/ login上显示当我请求/ page1,/ page2,/ page3时,

  • 问题内容: 我已经在应用程序中将React Router升级到了版本4。但是现在我得到了错误 此路由有什么问题? 问题答案: IndexRoute和browserHistory在最新版本中不可用,并且Routes不接受带有v4的子级Routes,您可以在组件本身中指定Routes 然后在主要部分 同样在汽车组件中 您将拥有

  • 问题内容: 我正在React-Router中设置一些嵌套路由(我正在使用v0.11.6),但是每当我尝试访问其中一个嵌套路由时,都会触发父路由。 我的路线如下所示: 如果我将路线折叠起来,它看起来像: 它工作正常。之所以要嵌套,是因为我将在“仪表盘”下有多个子代,并希望它们在URL中都带有前缀。 问题答案: 配置与路由无关(尽管有名称),而是与路径驱动的布局有关。 因此,使用此配置: 就是说要嵌入

  • 问题内容: 我有以下路由配置: GuaranteeLoggedInContainer为: 但是,历史的推动力:没有用。这里没有历史。 如果我使用这样的配置: 我遇到类似的问题: reactjs中最好的身份验证方法是什么? 问题答案: 从我对您的React Router设计的了解中,您似乎正在使用React Router版本4 在这种情况下,您可以在组件本身中指定路由,并利用withRouter进行