reactjs - ReactRouter:捕获部分路径并同时指定要匹配的值
问题描述
我有一条路径,其格式/somePath/:name
需要:name
成为已知字符串之一。我读到 Route 组件支持要匹配的 URL 数组,因此生成支持的路径列表很容易,但这样做会带走自动捕获部分路径的便利。
例如,我目前有一个如下定义的 Route 组件。
<Route exact path={SomeKnownNames.map(n => `/somePath/${n}`)} component={SomeRoute} />} />
这应该可行,但我无法再访问props.match.params
Route 组件中的值。有没有办法在不手动解析 URL 的情况下实现这一点?
:name
让我补充一点,如果 的值不在已知字符串中,我不想匹配。
我正在使用 react-router-dom v5。
解决方案
显然,这有效:
<Route exact path={SomeKnownNames.map(n => `/somePath/:name(${n})`)} component={SomeRoute} />} />
即如果你这样做/somePath/:name(foo)
,那么它匹配/somePath/foo
,并被foo
捕获在props.match.params.name
路由组件中。
推荐阅读
- c# - 为什么没有任何东西传递给我的重载函数?
- react-native - 如何在 React Native 中读取通知?
- swiftui - SwiftUI 中的 Swift @propertyWrapper
- reactjs - 使用带有随机页面路径的 testcafe
- python - 数据库句柄可以从 perl 脚本传递到 python 脚本吗?
- python - 从 pandas 的数据框中查找无效的电子邮件记录
- javascript - 如何在具有分配的组件中测试可观察的服务
- java - 过滤映射并返回键列表
- typescript - VueJS TypeScript 组件
- asp.net - HttpException (0x80004005)