React路由器通过参数传递id

时间:2018-03-21 17:08:45

标签: reactjs react-router

我有2条路线,如下所示

<Route path="/organizations/create" exact component={Component1}/>
<Route path="/organizations/:organizationId" component={Component2}/>

然而,由于:organizationId与我去/ organizations / create时的任何内容匹配,因此它会加载Component1和Component2。我希望它只在url像“/ organizations / 5”时才加载第二个组件。

什么是理想的解决方案,不改变网址(即“组织/细节/:organizationId”不起作用 - 或者这是唯一的解决方案)

2 个答案:

答案 0 :(得分:2)

使用Switch,它只会显示第一个匹配的路线:

<Switch>
  <Route path="/organizations/create" exact component={Component1}/>
  <Route path="/organizations/:organizationId" component={Component2}/>
</Switch>

答案 1 :(得分:0)

您需要使用exact关键字

<Route exact path="/organizations/create" exact component={Component1}/>
<Route path="/organizations/:organizationId" component={Component2}/>