在特定路线上渲染组件-正则表达式路径

时间:2018-07-04 15:30:28

标签: regex reactjs react-router react-router-v4 react-router-dom

我试图仅在多个特定路径中渲染组件(标题),而不在其子级(即/foo中渲染,而不是在/foo/bar中渲染)。

说我有一系列路径: let paths = ['/foo', '/bar', '/baz']

我试图这样做,但是没有用:

    const x = paths.map(e => `(${path}${e}/?$)`)
    <Route
      path={x.join('|')}
      component={this.makeMyComponent}
    />

这也不起作用:

    const x = paths.map(e => `(${e}/?$)`)
    <Route
      path={`${path}(/foo$|/bar$|/baz$})}
      component={this.makeMyComponent}
    />

但是它确实与在线正则表达式引擎匹配:

enter image description here

1 个答案:

答案 0 :(得分:0)

这有效:

    <Route
      render={props => paths.some(e => props.location.pathname.endsWith(e)) ? this.makeMyComponent() : null}
    />