出于向后兼容的原因,我被要求创建以下3条路线:
/users
列出了所有用户/users/:id
按ID /users/online
是/users
的过滤视图,其中只有在线用户在场。 我知道online
永远不会是有效的id
,所以它永远不会在概念上与/users/:id
端点发生碰撞,但是反应路由器能够处理这个吗?
以下是我迄今为止所尝试的内容,该内容未按预期运行:
<Route exact path="/users" component={UserList} />
<Route exact path="/users/:id" component={UserDetail} />
<Route exact path="/users/online/:q" component={UserList} />
答案 0 :(得分:2)
您必须将online
路由放在类似通配符的参数:id
之前。
因为/:id
和/online
处于同一级别,并且:id
之前已定义,当您到达/online
时,它将被捕获为“id”。
<Route exact path="/users" component={UserList} />
<Route exact path="/users/online/:q" component={UserList} />
<Route exact path="/users/:id" component={UserDetail} />