【发布时间】:2022-01-24 10:13:36
【问题描述】:
我对 react-router-dom 中的子路由有一个小问题
就我而言,我有 3 种不同的容器,分别是 MainContainer.jsx、LoginContainer.jsx 和 RegisterContainer.jsx
所有这些容器内部都存在子路由
目前,在我的 App.js 文件中只有 3 条路线
当我尝试访问 LoginContainer.jsx 中的路由时,如果我在父路由上没有确切的标志,则登录路由不会呈现
另一方面,当我尝试访问注册路由时,如果登录父路由有一个确切的标志,我也会遇到同样的错误
我试图在 App.js 中的所有父路由上切换精确和严格的标志
但这并没有解决我的问题
这是我的组件
我的 App.js 文件
<Switch>
<Route exact path='/' component={MainContainer}/>
<Route path='/login' component={LoginContainer}/>
<Route path='/login/:type/register' component={RegisterContainer}/>
</Switch>
我的登录容器
<Router history={history}>
<div className="login">
<LoginHeaderNavigation/>
<div className="login-page-wrapper">
<Suspense fallback={<></>}>
<Switch>
<Route exact path={match.url} component={Login}/>
<Route exact path={`${match.url}/:type`} component={LoginType}/>
</Switch>
</Suspense>
<LoginFooter/>
</div>
</div>
</Router>
我的注册容器
<Router history={history}>
<div className='register-page'>
<RegisterHeaderNavigation/>
<Suspense fallback={<></>}>
<Switch>
<Route exact path='/login/:type/register' component={Register}/>
</Switch>
</Suspense>
</div>
</Router>
最后一个 MainContainer
<Suspense fallback={<></>}>
<Switch>
<Route exact path='/' component={Explore}/>
<Route path='/adventure-blog/:slug/:id' component={Blog}/>
</Switch>
</Suspense>
【问题讨论】:
标签: reactjs react-router react-router-dom