What I have is a root route
definition:
const rootRoute = {
childRoutes: [{
path: '/',
component: require('./screens/Container'),
appGlobalVars: appGlobalVars,
childRoutes: [
require('./routes/ListApps'),
require('./routes/Settings'),
require('./routes/Profile')
]
}]
};
var runApp = (appGlobalVars) => {
var routes = (
<Provider store={store}>
<Router history={ history } routes={rootRoute} />
</Provider>
);
render(routes, document.getElementById('app'));
};
and some settings with nested dynamic routing:
./routes/Settings/index.js:
module.exports = {
path: 'settings',
getComponent(nextState, cb) {
require.ensure([], (require) => {
cb(null, require('../../screens/AppSettings'))
})
},
getChildRoutes(partialNextState, cb) {
require.ensure([], (require) => {
cb(null, [
require('./General'),
require('./Users')
])
})
},
};
/settings
is the parent component, which renders {this.props.children}
react router passes. For example, if I navigate to /settings/general
I'll have settings
rendered, which in turn will render general
as its child:
./routes/Settings/General.js
module.exports = {
path: 'general',
getComponent(nextState, cb) {
require.ensure([], (require) => {
cb(null, require('../../screens/AppSettings/General'))
})
}
};
This is OK, but what I would like to do is defining the default child component Settings
should render if navigating to /settings
.
In short: is there a way to define something like IndexRoute
when using dynamic routing?
You should use getIndexRoute
- https://github.com/reactjs/react-router/blob/master/docs/API.md#getindexroutepartialnextstate-callback