【发布时间】:2016-12-08 08:08:21
【问题描述】:
我有一个基于http://moduscreate.com/code-splitting-for-react-router-with-es6-imports/ 文章的应用程序。我添加了一些子路由,现在我的路由器配置如下:
function errorLoading(err) {
console.error('Dynamic page loading failed', err);
}
function loadRoute(cb) {
console.log('load route called');
return (module) => cb(null, module.default);
}
const obj = {
component: App,
childRoutes: [
{
path: '/',
getComponent(location, cb) {
System.import('pages/Home')
.then(loadRoute(cb))
.catch(errorLoading);
}
},
{
path: '/gsgs',
getComponent(location, cb) {
System.import('pages/Gsgs')
.then(loadRoute(cb))
.catch(errorLoading);
},
childRoutes: [
{
path: 'go',
getComponent(location, cb) {
System.import('pages/Gsgs/Home.js')
.then(loadRoute(cb))
.catch(errorLoading);
},
}
]
},
{
path: '/about',
getComponent(location, cb) {
System.import('pages/About')
.then(loadRoute(cb))
.catch(errorLoading);
}
},
]
};
/index、/about 和 /gsgs 路由可以很好地触发动态代码加载。但是 /gsgs/go 使用
触发 404bundle.js:2 动态页面加载失败错误:加载块 0 失败了。(…)
我做错了什么?我正在使用
"webpack": "^2.1.0-beta.4", "webpack-dev-server": "^2.0.0-beta"
【问题讨论】:
-
不确定为什么会出现错误,但请注意您可以使用 JSX 元素来设置路由,而不是使用变得难以管理的大对象。
-
是的,我知道路由器的 jsx 元素,我发现对象表示法更简洁,更易于阅读
标签: javascript reactjs webpack react-router webpack-dev-server