2015-02-25 4 views
1

Я играю с моим веб-приложением и react-router, и я хотел бы сделать несколько вложенных маршрутов. Вот что я сделалВложенные маршруты в компоненте DefaultRouter

<Route name="app" path="/" handler={App}> 
    <DefaultRoute handler={AppPage}> 
     <DefaultRoute name="home" handler={HomePage}/> 
     <Route name="rooms" handler={RoomsPage}/> 
    </DefaultRoute> 
    <Route name="login" handler={LoginPage}/> 
    <Route name="firstime" handler={FirstTimePage}/> 
</Route> 

Этот пример не работает из-за DefaultRoute. Когда я изменил его на обычный компонент Route, все в порядке. Я не могу найти пример, где DefaultRoute имеет несколько дочерних элементов. Имеет ли DefaultRoute вложенные маршруты? Если да, то что я делаю неправильно?

ответ

1

Я столкнулся с той же проблемой, и вместо этого я использовал вместо нее.

Я имел быстрый взгляд на компоненте DefaultRoute и кажется, что не поддерживают ребенок маршрутов, вот код:

/** 
* A <DefaultRoute> component is a special kind of <Route> that 
* renders when its parent matches but none of its siblings do. 
* Only one such route may be used at any given level in the 
* route hierarchy. 
*/ 
var DefaultRoute = React.createClass({ 

    displayName: 'DefaultRoute', 

    mixins: [ Configuration ], 

    propTypes: { 
    name: PropTypes.string, 
    path: PropTypes.falsy, 
    children: PropTypes.falsy, 
    handler: PropTypes.func.isRequired 
    } 

}); 

module.exports = DefaultRoute; 

Я не уверен на 100%, но «дети: PropTypes.falsy» вероятно, означает, что DefaultRoute не поддерживает вложенные маршруты.

Надеюсь, это поможет.

+0

Странно, потому что DefaulRoute является тем же самым, что и обычный компонент Route, путь которого указывает на родительский путь. – niba

 Смежные вопросы

  • Нет связанных вопросов^_^