在反应中,我使用具有两个不同路径的两个组件。当我使用此代码路由组件时,它可以正常工作..
<Router>
<Provider store={store}>
<Route exact path="/ID/" component={App}/>
<Route path="/login" component={Login}/>
<Route path="/register" component={Register}/>
</Provider>
</Router>
但是,当我使用ID作为参数时,Register和Login组件将与App组件混合在它们的路径“ / register”和“ / login”上,如图所示。在路径“ /:ID”上,一切都很好。
<Router>
<Provider store={store}>
<Route exact path="/:ID/" component={App}/>
<Route path="/login" component={Login}/>
<Route path="/register" component={Register}/>
</Provider>
</Router>
您应该将路线包裹在中<Switch>
。它将呈现第一个匹配的路由,并将忽略任何后续匹配。
另外,您也应该将<Route exact path="/:ID/" component={App}/>
路线放在<Switch></Switch>
包装器的/login
和,因为和/register
被识别为的匹配项/:ID
。
<Router>
<Provider store={store}>
<Switch>
<Route path="/login" component={Login}/>
<Route path="/register" component={Register}/>
<Route exact path="/:ID/" component={App}/>
</Switch>
</Provider>
</Router>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句