可选的反应路由器参数

Posted

技术标签:

【中文标题】可选的反应路由器参数【英文标题】:Optional React Router parameter 【发布时间】:2015-12-22 19:09:14 【问题描述】:

我正在尝试创建一个匹配以下所有 URL 的路由:

/product/foo
/product/foo/bar

这是我目前的路线:

<Route path="/product/:productName(/:urlID)" handler=SomeHandler />

根据https://github.com/rackt/react-router/blob/master/docs/guides/basics/RouteMatching.md 上的文档,此路由应该完全匹配,但它与上述任何一个 URL 都不匹配

我需要做什么来支持这个可选参数?

我使用的是 React Router 版本 0.13.3,如果我删除 (/:urlID),那么我可以匹配第一个 URL,但不能匹配第二个。

【问题讨论】:

对于 react-router 版本 1.0.0 及以上(包括2.x),看 here... 【参考方案1】:

好的,所以 () 语法特定于 React Router 1.0,而不是 0.13.3。我最终使用了?语法:

<Route path="/product/:productName/?:urlID?" handler=SomeHandler />

【讨论】:

以上是关于可选的反应路由器参数的主要内容,如果未能解决你的问题,请参考以下文章

angularjs 路由可以有可选的参数值吗?

typescript 可选的路由参数

typescript 可选的路由参数

Express.js 路由:可选的 splat 参数?

Express.js 路由:可选的 splat 参数?

如何使用可选的查询字符串参数测试 MVC 路由