反应路由器路径问题

时间:2017-10-03 18:33:54

标签: reactjs path router

用户和用户/:ID正常工作但其他路径无法正常工作并重定向到用户/:ID页面...

setVisible

3 个答案:

答案 0 :(得分:3)

这些路线是相同的,因为您可以拥有id = 'create'

<Route exact path="/user/:id" component={UserDetails} /> 
<Route exact path="/user/create" component={AddNewUser} />

所以你应该首先匹配更具体的一个,所以它在变量1之前匹配:

<Route exact path="/user/roles" component={ListRoles} />
<Route exact path="/user/role/create" component={AddNewRole} />         
<Route exact path="/user/roles/:id" component={RoleDetails} />
<Route exact path="/user/create" component={AddNewUser} />
<Route exact path="/user/:id" component={UserDetails} /> 

答案 1 :(得分:2)

由于:id可以是任何内容,因此您需要在任何静态/user/whatever路由之后将其放置。

答案 2 :(得分:1)

将您的开关更改为

<Switch>
          <Route exact path="/" component={Home} />
          <Route exact path="/login" component={Login} />  
          <Route exact path="/user" component={ListUsers}/>
          <Route exact path="/user/create" component={AddNewUser} />
          <Route exact path="/user/roles" component={ListRoles} />
          <Route exact path="/user/role/create" component={AddNewRole} /> 
          <Route exact path="/user/roles/:id" component={RoleDetails} />
          <Route exact path="/user/:id" component={UserDetails} />         
        </Switch>

在您的交换机中,:id路由在测试createroles路由之前是匹配的。