我是第一次使用react-router。
这是我的代码。
<Switch>
<Route exact path="/" component={Home} />
<Route path="/A/xx/xxx/:feeros" component={About} />
<Route path="/B/xx/xxx/:feeros" component={About} />
<Route path="/C/xx/xxx/:feeros" component={About} />
<Route path="/D/xx/xxx/:feeros" component={About} />
</Switch>
Run Code Online (Sandbox Code Playgroud)
这部分<Route path="//xx/xxx/:feeros" component={About} />代码总是重复的。有没有办法减少这个反应路由器?
Ric*_*ior 13
如果您需要处理四个特定路线(A | B | C | D);
<Route path="/(A|B|C|D)/xx/xxx/:feeros" component={About} />
Run Code Online (Sandbox Code Playgroud)
如果仍然需要拦截参数,但是值只能是A | |。B | C | D,那么你可以这样写:
<Route path="/:letter(A|B|C|D)/xx/xxx/:feeros" component={About} />
Run Code Online (Sandbox Code Playgroud)
您将有两个参数:
const { letter, feeros } = match.params;
Run Code Online (Sandbox Code Playgroud)
字母只能是:“ A”,“ B”,“ C”或“ D”
您可以使用其他正则表达式。
例如:
<Route path="/([a-zA-Z])/xx/xxx/:feeros" component={About} />
Run Code Online (Sandbox Code Playgroud)
该路线适用于一个拉丁字母,例如:
'/A/xx/xxx/value'
'/s/xx/xxx/value'
'/F/xx/xxx/value'
Run Code Online (Sandbox Code Playgroud)
此外,您可以对参数使用正则表达式:
<Route path="/([a-zA-Z])/xx/xxx/:feeros(\d{2})" component={About} />
Run Code Online (Sandbox Code Playgroud)
匹配具有两位菲洛斯值的路线:
'/A/xx/xxx/11'
'/s/xx/xxx/21'
'/F/xx/xxx/45'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
368 次 |
| 最近记录: |