我目前正在尝试匹配以下网址
https://www.example.com/discover/exampleuser/review
还有其他与正则表达式匹配的网址
https://www.example.com/discover/community
https://www.example.com/discover/reviews
https://www.example.com/discover/activity
我有以下与最后三个网址完全匹配的代码
<Route path={`${url}/(community|reviews|activity)`} render={prop => (
<div className='mb-4'>
<CollectionWidget { ...prop } />
</div>
)} />
每当我使用以下路径时,它就会起作用
{`${url}/:username`}
但是,当我尝试匹配所有网址时,
{`${url}/(community|reviews|activity|:username)`}
我该如何匹配具有不明确ID的正则表达式
答案 0 :(得分:3)
听起来似乎不可行,如何同时匹配未命名参数和已命名参数?
好东西,您可以传入2个字符串(或更多):
<Route
path={[
`${base}/(a|b|c)`,
`${base}/:username
`]}
component={({ match }) => <div children={JSON.stringify(match.params)} />} />
// /b ---> { 0: "b" }
// /c ---> { 0: "c" }
// /d ---> { "username": "d" }