如何使用嵌套路由和私有路由组件在react.js中正确构造路由?

时间:2019-01-03 16:14:20

标签: reactjs react-router react-router-v4 react-router-dom react-router-redux

我正在使用react-router-dom。目前,我有一个app.js文件,包含以下内容:

<BrowserRouter>
    <div className="App container">

        <Header/>

        <Switch>
            <Route exact path='/' component={Dashboard}/>
            <Route path='/profile' component={Profile}/>
        </Switch>

    </div>
 </BrowserRouter>

因此,我的标题组件始终在页面上,并且路由两个组件(仪表板和配置文件)。现在,我要添加仅具有登录组件(不包含标题组件)的新页面“登录”。像这样:

<BrowserRouter>
    <div className="App container">

        <Switch>
            <Route path='/login' component={Login}/>

            <Route path='/'>

                <Header/>

                 <Switch>
                     <Route exact path='/' component={Dashboard}/>
                     <Route path='/profile' component={Profile}/>
                 </Switch>

            </Route>
        </Switch>
    </div>
 </BrowserRouter>

最后一步是用专用路由组件替换路由组件。

1 个答案:

答案 0 :(得分:2)

您所说的私人路线是什么意思? 对于没有标题的登录页面,请使用React片段

<Switch>
    <Route path='/login' component={LoginComponent} /> {/* <--- No header */}
    <Fragment>
        <Header/>
        <Route exact path='/' component={Dashboard}/>
        <Route path='/profile' component={Profile}/>
    </Fragment>
</Switch>