【发布时间】:2018-08-10 11:56:34
【问题描述】:
我正在尝试在满足路由器条件时动态导入一个类。
导入标准(非类)模块没有问题,因为它按预期工作:
Router.on({
'/:region/map': (params) => {
import("Controllers/map.js" /* webpackChunkName: "map" */).then(({map}) => {
map.initialise(params.region);
});
}
});
但是尝试对一个类做同样的事情并没有按预期工作。
Router.on({
'/:region/map': (params) => {
import("Controllers/map.js" /* webpackChunkName: "map" */).then(Map => {
Map.initialise(params.region);
});
}
});
“e.initialise 不是函数”失败;
我还尝试使用new 关键字来实例化该类:
Router.on({
'/:region/map': (params) => {
import("Controllers/map.js" /* webpackChunkName: "map" */).then(Map => {
const MapClass = new Map();
MapClass.initialise(params.region);
});
}
});
但仍然没有快乐!
在这种情况下如何动态导入类?
更新:
这是我的地图模块,作为一个非类模块,它可以工作:
var map = {
initialise(region) {
console.log("Map initialised for region: " + region);
}
}
export { map };
这是同一个模块,但作为一个类:
export default class Map {
constructor() {
//
}
initialise(region) {
console.log("Map initialised for region: " + region);
}
}
【问题讨论】:
-
能否也分享一下map.js代码。想看看你如何导出以及从 map.js 导出什么
-
@MohitTilwani - 添加。谢谢。
-
这个问题解决了吗?我也有同样的问题
标签: javascript webpack import es6-modules dynamic-import