对于react应用程序,我有以下嵌套路由/组件的基本结构:
/users
-
在react router v4的上下文中,我试图弄清楚的是如何访问
用户设置
组件中的:id
参数。我可以在UserLayout
组件中很好地访问它,但在下游没有其他地方。
我的主路由器定义位于
Home
组件中,但所有特定于用户的路由都包含相同的头信息,因此我希望所有特定于用户的路由都嵌套。我当前的结构在UserLayout
组件中定义了这些嵌套路由。但是,无论我对布局组件的路由定义做了什么,我都无法获得要渲染的“索引”路由(UserProfile
)以外的任何其他路由。当尝试访问UserSettings
或任何其他路由时,我的顶级404路由反而被击中。
以下是相关的JSX(实际组件的
render
函数片段):
<main>
<Switch>
<Route exact path="/login" component={Login} />
<Route exact path="/users" component={UsersList} />
<Route exact path="/users/:id" component={UserLayout} />
<Route exact path="/" component={Home} />
<Route component={NoMatch} />
</Switch>
</main>
<div>
<Switch>
<Route path={`${match.url}/settings`} component={UserSettings} />
<Route path="/users/:id/blah" component={YetAnotherComponent} />
</Switch>
<Route path="/users/:id" component={UserProfile} />
</div>
在
UserLayout
组件中,我尝试了开关中显示的两种路径格式,并尝试了打开/关闭精确匹配。我唯一能想到的就是使用
Route
组件的render
参数来传递id参数,但这似乎是错误的。这是我唯一的选择吗?
当然,在我发帖几分钟后,我就明白了。在我的顶级路由配置中,我将/user/: id
设置为需要精确匹配。这意味着当我导航到/user/: id/anything_else
时,路由器根本没有加载UserLayout
,因此没有机会测试我配置的其余路由。
所以我改变了这个从我的家庭组件:
<Route exact path="/users/:id" component={UserLayout} />
……为此:
<Route path="/users/:id" component={UserLayout} />
... 现在世界一切都好了。
我正在尝试写一个简单的路线系列,下面是我想要发生的事情: 我几乎什么都试过了,却不知道该怎么办。这方面的文档很难理解。 谁能给我指点一下吗?
问题内容: 有没有办法在React Router v4中嵌套路由? 这有效: 这不是: 客户组成部分: 问题答案: 到目前为止,我发现的最佳模式。 我可以继续将其嵌套在组件中,并且一切都很好,包括hmr(如果使用webpack,请不要忘记设置为)
我在使用react hooks的reach router上遇到了一点问题。我需要在浏览器中捕获路由的参数,我尝试使用Web of reach路由器中的本机文档的道具,但这并没有给我参数,路由是这样的: 如何捕获该变量“init”?
如果我将路由折叠起来,这样看起来就像: 工作很好。我嵌套的原因是因为我将在“dashboard”下有多个子项,并且希望它们都在URL中以为前缀。
本文向大家介绍详解react如何在组件中获取路由参数,包括了详解react如何在组件中获取路由参数的使用技巧和注意事项,需要的朋友参考一下 路由参数 假如我们有很多 list 页面,这些页面除了动态内容不同,其他的页面部分都相同,这个时候需要怎么配置路由和组件呢? 这种场景就需要用到路由的参数功能,增加一条包含参数的路由配置。 注意 path 属性中的 :id 就是该路由的参数( param )。
1. 前言 本小节我们介绍如何嵌套使用 VueRouter。嵌套路由在日常的开发中非常常见,如何定义和使用嵌套路由是本节的重点。同学们在学完本节课程之后需要自己多尝试配置路由。 2. 配置嵌套路由 实际项目中的应用界面,通常由多层嵌套的组件组合而成。同样地,URL 中各段动态路径也按某种结构对应嵌套的各层组件,例如: /article/vue /a