我想在一个Route
中处理两个不同的路由,下面是代码:
<Route exact path={['/$:username', '/$:username/:section']} render={(props)=><FullProfile {...props} me={this.props.me}/>} />
在FullProfile
里面我会安慰道具。但是,如果我输入第一个路径,username
参数将是undefined
,如果我进入第二个路径,我将按原样获得它。
为了澄清,假设我输入mydomain.com/$john
,那么props.match
将是:
params:
section: undefined
username: undefined
如果我输入mydomain.com/$john/likes
,那么props.match
将是:
params:
section: "likes"
username: "john"
当我进入第一个路径时,username
是undefiend
,为什么?正如你所看到的,我把我的路径放入一个数组中,所以它应该对这两种情况都有效。
只有react router的v4.4版本才支持字符串路径阵列。更新到react router dom的最新alpha版本,以使用字符串数组作为路径
工作演示
https://codesandbox.io/s/8yo61w900l