Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 如何使用嵌套路由和专用路由组件在react.js中正确构造路由?_Reactjs_React Router_React Router V4_React Router Dom_React Router Redux - Fatal编程技术网

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

Reactjs 如何使用嵌套路由和专用路由组件在react.js中正确构造路由?,reactjs,react-router,react-router-v4,react-router-dom,react-router-redux,Reactjs,React Router,React Router V4,React Router Dom,React Router Redux,我使用的是react路由器dom。目前我有一个app.js文件,其中包含如下路由: <BrowserRouter> <div className="App container"> <Header/> <Switch> <Route exact path='/' component={Dashboard}/> <Route path='/pr

我使用的是react路由器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>

所以,我有标题组件,它总是在页面上,和两个组件的路由,仪表板和配置文件。现在,我想添加一个新的页面“Login”,该页面将只有一个登录组件(没有标题组件)。大概是这样的:

<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>


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

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

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


{/*谢谢,但我需要将片段中的两条路由封装到一个交换机中,以使其按预期工作。有更平滑的方法吗?