Я использую React-Router 1.0.0-rc3, но мне трудно понять, как я могу установить маршрут по умолчанию для дочернего маршрута.Как установить дочерний маршрут по умолчанию с помощью ретранслятора?
У меня есть rootRoute
установку следующим образом:
var rootRoute = {
component: 'div',
childRoutes: [{
path: '/',
component: require('./components/Console'),
childRoutes: [
require('./routes/FileManager'),
require('./routes/UserManager')
]
}]
};
React.render(<Router routes={rootRoute}/>, document.body);
My Console корневой компонент настроен следующим образом:
module.exports = React.createClass({
render: function() {
return (
<div className="console">
<ConsoleHeader/>
{this.props.children}
</div>
);
}
});
Мой FileManager определение маршрута следующим образом:
module.exports = {
path: 'files',
getComponent: function (location, callback) {
callback(null, require('./components/FileManager'));
}
};
Моя цель состоит в том, чтобы компонент Console всегда загружался, а любой из его c hild маршруты активны. Он будет содержать дочерний компонент на основе дочернего маршрута. Я хочу, чтобы дочерние компоненты загружались асинхронно. Я хочу, чтобы дочерний маршрут FileManager также был по умолчанию, если дочерний маршрут не выбран.
Так следующие два маршрута будет как выбрать компонент FileManager:
/
/files
Я понимаю, один из способов сделать это было бы сделать что-то вроде этого:
{this.props.children || require('./routes/FileManager/components/FileManager')}
Это не чувствует право, однако. Я не хочу использовать этот путь к компоненту FileManager из файла определения маршрута.
Возможно, я мог бы создать запись маршрута по умолчанию как ребенок:
{
path: '/', //Or maybe empty string here since it concatenates to the parent?
getComponent: function (location, callback) {
callback(null, require('./components/FileManager'));
}
}
Но это по существу то же определение маршрута, у меня уже есть, кроме как с другой путь.
Таким образом, кажется, что должен быть более чистый способ указания дочернего маршрута по умолчанию, но я не могу понять его даже после просмотра API documentation.
Как я могу настроить дочерний маршрут по умолчанию для дочернего маршрута FileManager?
я только сейчас прочитал о [IndexRoute] (https://github.com/rackt/react-router/blob/master/docs/API.md # indexroute) и чувствую себя глупым, не понимая, что это по существу DefaultRoute более ранних версий. Я отвечу на рекомендацию JSX. Благодарю. – crush