所以我正在努力让这个简单的情况在 React Router 4 中为我工作。基本上,我有一个参数用于检索将呈现组件 /:user
的用户数据。我在该页面上还有一些更具体的 View ,它们的呈现方式如下 /:user/:specicView
。为了防止后者错过像特定 View 这样的匹配用户,我一直在尝试以下正则表达式,但似乎没有任何结果才能正常工作。
<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/:specicView
, /okusers/butnotbad/:users/:specicView
... 等),因此它们需要是路径名的最后部分。
我用谷歌搜索了很多,似乎提出了省略开头斜杠的相对路径格式 :user/:specicView
但它不起作用,所以我不相信它成功了在:https://github.com/ReactTraining/react-router/issues/5127
任何帮助都会很棒!不幸的是,我陷入了相对路径的困境,因为我永远不知道服务器端 View 路线将会是什么。
最佳答案
我一直在使用 match.path
来允许从各种父路由中使用路由:
<Route
exact
strict
path={`${match.path}/create`}
component={CreateComponent} />
关于javascript - React Router 4相对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47827693/