反应路由器4的相对路径

问题描述 投票:2回答:1

所以我很难在React Router 4中为这个简单的情况工作。基本上,我有一个param用于检索将呈现组件/:user的用户数据。我还有一些更具体的视图在那个页面上呈现如此/:user/:specificView。为了防止后者错过匹配用户,如specificViews我一直在尝试以下正则表达式,但似乎没有什么工作正常。

<div>
    <Switch>
      <Route
        exact
        path="*/:user/:specificView(coolview|niceview|okview)"
        render={routerProps =>
          <SpecificViewContainer {...routerProps} {...this.props}/>}/>
      <Route
        path="/:user"
        render={routerProps =>
          <UserPageContainer {...routerProps} {...this.props}/>}/>
    </Switch>
</div>

相对路径部分来自这两条路线可以位于任何东西(/coolusers/:user/:specificView/okusers/butnotbad/:users/:specificView等)的顶部,因此它们需要是路径名的最后部分。

我已经google了很多,似乎相对路径格式:user/:specificView,其中省略了开头斜线,但它没有工作,所以我不相信它成功:https://github.com/ReactTraining/react-router/issues/5127

任何帮助都会很棒!不幸的是,我坚持使用相对路径的东西,因为我永远不知道服务器端视图路由是什么。

javascript reactjs react-router react-router-v4
1个回答
1
投票

我一直在使用match.path来允许从各种父路线使用路线:

   <Route 
    exact 
    strict 
    path={`${match.path}/create`} 
    component={CreateComponent} />
© www.soinside.com 2019 - 2024. All rights reserved.