javascript - React Router 如何匹配模糊路径和静态路径

标签 javascript regex reactjs react-router-v4

我目前正在尝试匹配以下 URL

https://www.example.com/discover/exampleuser/review

还有其他的 url 我也在用正则表达式匹配

https://www.example.com/discover/community
https://www.example.com/discover/reviews
https://www.example.com/discover/activity

我有以下代码可以很好地匹配最后三个 url

<Route path={`${url}/(community|reviews|activity)`} render={prop => (
  <div className='mb-4'>
    <CollectionWidget { ...prop } />
  </div>
)} />

每当我使用以下路径时它都有效

{`${url}/:username`}

然而,当我尝试匹配所有的 url 时,它不会

{`${url}/(community|reviews|activity|:username)`}

如何将正则表达式与不明确的 id 匹配

最佳答案

老实说,这听起来不太可能,你怎么能同时匹配未命名和命名参数?

幸好你可以传入 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" }

关于javascript - React Router 如何匹配模糊路径和静态路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54585545/

相关文章:

javascript - 当我在调试器中看到更改时,为什么我的元素没有显示其属性已更改?

javascript - 在网格 Ext js 中显示 json 响应

SIP URI 变量的 Python 正则表达式?

javascript - 如何从自定义 react 钩子(Hook)丰富数据

javascript - 无法让 javascript 处理文档就绪

javascript - React Native Firebase 电话身份验证问题

regex - 在 htaccess 中添加 ID 号

java - 用 Map 中的 RegEx 键替换所有出现的字符串

javascript - React-Leaflet,从状态提供位置

reactjs - 如何从三层以下的子组件中调度操作?