我是新来响应redux并构建我的第一个Web应用程序的人。
因此我创建了Router并添加了特定页面:
<Switch>
<Route path="/">
<Home />
</Route>
<Route path="/Info/:id/:name/:type">
<Info />
</Route>
</Switch>
当我有path="/"
和path="/Info/:id/:name/:type"
时,它不起作用。但是当我有类似的东西
path="/Home"
,path="/Info/:id/:name/:type"
,效果很好。我在做错什么吗?
答案 0 :(得分:1)
通过“精确”作为道具:
<Route path="/" exact><Home /></Route>
答案 1 :(得分:0)
因此,就其本质而言,路由与第一条路径匹配。 您应该做的是在第一个路径中使用“精确”。
<Switch>
<Route exact path="/">
<Home />
</Route>
<Route path="/Info/:id/:name/:type">
<Info />
</Route>
</Switch>
答案 2 :(得分:0)
就像我总是提醒我的学生一样。<Switch />
和exact
基本上是彼此的选择。
如果您有2条或3条以上的路线,请选择<Switch/>
。 exact
道具仅够一次使用。
我为您提供2个答案。
<Route exact path="/">
<Home />
</Route>
<Route path="/Info/:id/:name/:type">
<Info />
</Route>
只需更改路由顺序即可。.因为Switch仅采用第一个匹配项。
<Switch>
<Route path="/Info/:id/:name/:type">
<Info />
</Route>
<Route path="/">
<Home />
</Route>
</Switch>