嵌套路线和Switch-如何传递props.match.params.id?

时间:2018-11-20 17:58:26

标签: javascript reactjs react-router-v4

我一直在尝试理解嵌套路由并在React v4 Router中进行切换。 考虑主路由器如下所示(简化):

\\.

“仪表板”组件呈现子路线:

.*

“ EditNotePage”组件可以通过以下方式访问参数:

<Switch>
  <Route path="/" component={LoginPage} exact={true} />
  <Route path="/dashboard/edit/:id" component={DashboardPage} />
  <Route path="/dashboard" component={DashboardPage} />
</Switch>

这是正确的方法吗? 两次指定“ / dashboard / edit /:id”似乎有点多余(?) 一次在主路由器中,再一次在仪表板组件中。

但是,如果我不匹配主路由器“ Switch”中的路由,则“ props.match.params.id”将无法访问,因为“ props.match”将仅指向“ / dashboard”。

我是否错过了一些有关React v4 Router如何工作的关键信息? :)

亲切的问候 柯密特

1 个答案:

答案 0 :(得分:2)

不,什么都没错过。这就是路由器v4的反应方式。您定义完整的路线。可以使用的技巧是,您可以获取当前路径并将其添加到“嵌套路径”之前。