Reactjs React路由器,2条具有类似URL的路由

Reactjs React路由器,2条具有类似URL的路由,reactjs,react-router,Reactjs,React Router,我有以下两条路线: <RouteEx path="/:id" component={Page2} /> <RouteEx path="/imprint" component={Imprint} /> 每次单击imprint导航到我的imprint页面时,我的控制台中的Page2组件都会出现一个错误。当我想导航到压印页面时,如何防止调用Page2?如果id是一个数字,那么您可以尝试使用正则表达式: <RouteEx exact path="/:id(\d

我有以下两条路线:

<RouteEx path="/:id" component={Page2} />
<RouteEx path="/imprint" component={Imprint} />


每次单击imprint导航到我的imprint页面时,我的控制台中的Page2组件都会出现一个错误。当我想导航到压印页面时,如何防止调用Page2?

如果id是一个数字,那么您可以尝试使用正则表达式:

    <RouteEx exact path="/:id(\d+)" component={Page2}/>
    <RouteEx exact path="/imprint" component={Imprint}/>

的“路由匹配”部分提供了一些处理路由的工具,这些路由既可以用作地址文本的匹配项。第一个是
,这使得只有一个路由——第一个匹配,即使有很多——响应路由匹配。另一个是
exact
属性,它保证不会灵活地解释路由。在您的情况下,您可能会同时使用它们(尽管我认为在您的情况下可能不需要使用
exact
标记):



在此配置中,如果路由匹配
'/print'
,则不会触发
'/:id'
路由。即使
id
是一个字符串,这也会起作用。(当然,您必须确保永远不会遇到这种情况
id=='print'

没问题@SanjnaMalpaniThanks!这似乎是一种更干净的方法。
<Switch>
  <RouteEx exact path="/imprint" component={Imprint} />
  <RouteEx path="/:id" component={Page2} /> 
</Switch>