我已经是一个root route
定义时定义反应路由器的IndexRoute:如何使用动态路由
./routes/Settings/index.js:
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'));
};
和嵌套动态路由的一些设置:
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
是父组件,这使得{this.props.children}
反应路由器通过。例如,如果我定位到/settings/general
我要settings
渲染,这反过来又会使general
作为其子:
./routes/Settings/General.js
module.exports = {
path: 'general',
getComponent(nextState, cb) {
require.ensure([], (require) => {
cb(null, require('../../screens/AppSettings/General'))
})
}
};
这是可以的,但我想要做的是定义默认的子组件Settings
应该呈现如果导航到/settings
。
总之:有没有办法在使用动态路由时定义类似IndexRoute
的东西?
你试过用'getIndexRoute()'吗? – QoP