【问题标题】:How can I create optional leading path parameters?如何创建可选的前导路径参数?
【发布时间】:2019-08-21 12:59:49
【问题描述】:

我想要一个可选的路径前缀。理想情况下,这将允许我创建可选路径和参数。

例如:

我有路线 /search,但我希望这条路线同时匹配 /search/portal/somePortalID/search,并在子道具中为我提供 somePortalID

到目前为止我已经尝试过:

<Route path="(/portal/:portalId)?/search">

<Route path="(/:portalId(/portal/\.+)?/search">

如果您可以包含有关如何动态更改子 React Router <Link /> 组件的想法,以便它们包含可选前缀以使用户保持在该路由内,则可以加分。

【问题讨论】:

    标签: reactjs react-router react-router-v5


    【解决方案1】:

    你可以试试下面的路线

    <Route path="(/portal/:portalId/search" component={yourComponent} >
    <Route path="(/portal/example/search/" component={yourComponent} >
    <Route path="(/search" component={yourComponent} >
    

    请注意,您可以使用不同的路由路由到同一个组件

    【讨论】:

    • 不幸的是,这似乎与 /search/portal/example/search/ 路线不匹配
    • 我真的很想避免为每个组件使用单独的硬编码路由,因为这些路由会在应用程序的许多地方乱扔垃圾,我正在寻找一种更易于维护的方法。我还想保持:portalId 动态,因为最终会有很多。
    • 是的,在这种情况下,您的门户 ID 只能是动态的。但我相信你不能有一个单一的路线来处理 /porta/example/search 和 /search。它必须是两条不同的路线。或者你可以像 /portal/*/search 这样配置它
    猜你喜欢
    • 2022-01-21
    • 1970-01-01
    • 2013-11-09
    • 2019-04-25
    • 2018-05-13
    • 1970-01-01
    • 1970-01-01
    • 2018-07-07
    • 2022-01-12
    相关资源
    最近更新 更多