我正在从事的项目对非常规路线的要求很少.路由具有以下结构/<-name-> -abc-xyz-<-id->名称和ID是动态的.现在我想使用反应路由器匹配此路由.所以我做了以下@H_502_4@
<路由路径='/:name-abc-xyz-:id'组件= {查看} />@H_502_4@
对于名称name格式为def-abc-xyz- *的情况,此操作将失败.@H_502_4@
如何解决此问题,以便我直接在View组件中获取名称和ID的值.@H_502_4@
我有一种解决方法
< Route path ='/:dynamicId'component = {View} />@H_502_4@
现在我解析dynamicId并在View组件中从中取出名称和ID.是否有一种无需解析即可实现以下目标的方法?@H_502_4@
在V4中对此进行管理的标准方法是在config中提供一条路由,如下所示:@H_502_4@
@H_502_4@
/:name/abc-xyz/:id
如果您不受其他解析器的约束,可以使用上述虚线模式,则此解决方案将满足您的需求.@H_502_4@
参考:https://github.com/reacttraining/react-router/tree/master/packages/react-router-config#route-configuration-shape@H_502_4@
如果您与静态路由冲突,则将动态路由放在路由脚手架中@H_502_4@
参考:https://tylermcginnis.com/react-router-ambiguous-matches/@H_502_4@
另外,注意@H_502_4@
@H_502_4@
React Router uses path-to-regexp for its route matching.@H_502_4@
这意味着如果您使用以下格式提供路线:@H_502_4@
@H_502_4@
/:name(\w+-)?abc-xyz(\w+-)?:id
比较(IE)时也可以使用@H_502_4@
@H_502_4@
def-abc-xyz-12
截图来自route tester@H_502_4@
参考:https://github.com/ReactTraining/react-router/issues/5536#issuecomment-330548834@H_502_4@
路由测试器:https://pshrmn.github.io/route-tester/#/def-abc-xyz-12