Как настроить маршрут вне основного приложения в реагирующем маршрутизаторе 3? - PullRequest
0 голосов
/ 07 мая 2018

моя конфигурация маршрутов следующая (реагирует маршрутизатор 3):

export default {
  component: App,
  path: '/',
  indexRoute: { component: Login },
  childRoutes: [
    {
      path: 'dashboard',
      getComponent(location, cb) {
        System.import('./components/dashboard/Dashboard')
          .then(module => cb(null, checkAuth(module.default)));
      }
    },
    {
     //... another route
    },
    //..
  ]
}

Каждый дочерний маршрут отображается в компоненте «Приложение». Я хочу создать еще один компонент, который будет «внешним». Это означает, что мой новый компонент, скажем, "OutsideComponent", должен отображаться отдельно (НЕ внутри компонента App). Может кто-нибудь помочь мне с такой конфигурацией?

1 Ответ

0 голосов
/ 07 мая 2018

React router v3 конфигурация является объектом (не массивом). Поэтому у вас должен быть корневой компонент, для которого любой другой маршрут является дочерним. Может быть ниже конфигурация будет работать для вас.

Постарайтесь сделать свое приложение максимально простым. И используйте childRoutes для достижения вашей конфигурации

...
  path: '/',
  component: Root, // Just a component which actually renders children and nothing else
  childRoutes: [{
    path: '/',
    component: App,
    childRoutes: {} //Your App components children goes here.
  }, {
    path: '/YOUR_NEW_PATH', // not a part of your App
    component: YOUR_COMPONENT, // not a child of your APP
    childRoutes: {} // If you have some childRoutes
  }]
...

ваш корневой компонент может выглядеть так, как показано ниже

Root = (props) => <div>{props.children}</div>
...