首页 文章

React路由器渲染组件在主组件外部

提问于
浏览
0

我希望在根目录下渲染一个SINGLE组件而不渲染额外的组件,如Nav .

这是我的路线文件:

import React from 'react';
import { Route, IndexRoute } from 'react-router';

import Gatekeeper from './Gatekeeper';

import Home from './components/Pages/Home';
import StrainGrid from './components/Strains/StrainGrid';
import Single from './components/Strains/Single';
import Event from './components/Events/Event';
import Faqs from './components/Pages/Faqs';
import Login from './containers/Patients/Login';
import NewPatient from './containers/Patients/NewPatient';
import Billing from './containers/Patients/Billing';
import AdminDashboard from './containers/Admin/Dashboard';
import AdminAddEditUser from './containers/Admin/AddEditUser';
import PatientForm from './containers/Patients/Form';
import LandingPage from './components/Pages/LandingPage'

module.exports =(
    <Route path="/" component={Gatekeeper}>
        <IndexRoute component={Home}></IndexRoute>
        <Route path='/view/:postId' component={Single}></Route>
        <Route path='/events/:eventId' component={Event}></Route>
        <Route path='/strainguide' component={StrainGrid}></Route>
        <Route path='/faqs' component={Faqs}></Route>
        <Route path='/login' component={Login}></Route>
        <Route path='/signup' component={NewPatient}></Route>
        <Route path='/patient/billing' component={Billing}></Route>
        <Route path='/admin' component={AdminDashboard}></Route>
        <Route path='/admin/addEdit' component={AdminAddEditUser}></Route>
        <Route path='/patient/form/:patientID' component={PatientForm}></Route>
        <Route path="*" component={Home} />
    </Route>
)

所以我试图将“LandingPage”组件渲染为IndexRoute,但当然要获取从“Gatekeeper”组件导入的所有组件 .

我怎样才能使索引导致LandingPage组件 . 但是当你转到/ app它将呈现GateKeeper组件和所有导入等...

1 回答

  • 0

    也许是嵌套路线? <Route path="/" component={Gatekeeper}> - Gatekeeper 在这种情况下使用类似布局的页面,包括 LandingPage .

    您必须向路由添加第二层,如下所示:

    <Route path="/" component={BlankLayout}>
        <IndexRoute component={LandingPage}></IndexRoute>
        <Route path="*" component={Gatekeeper}>
            <IndexRoute component={Home}></IndexRoute>
        </Route>
    </Route>
    

相关问题