我正在尝试利用new JavaScript dynamic import syntax来加载ES6模块。每个模块导出一个类。但是,我无法访问模块的默认导出。在检查器中,我可以看到我的模块已导入并包含所需的类,但是无法使用default
属性进行访问。
我试图在Firefox 67和Chrome 74上运行我的代码,这两个代码均产生相同的结果。我还尝试过使用静态导入,这些导入可以在对我的代码进行少量调整后正常工作。
我的代码尝试导入三个模块: home , visitors 和 statistics 。每个类分别包含一个名为 HomeView , VisitorView 和 StatisticsView 的类。
const module_names = [
'home',
'visitor',
'statistics',
];
const module_promises =
module_names.map(name => import(`./modules/${name}.js`));
const module_instances = Promise.all(module_promises)
.then(module => new module.default());
但是这会导致出现消息“ TypeError:module.default不是构造函数” 。我试图将其用作功能,但出现类似错误。最后,我尝试打印default
属性,发现该属性未定义。
const module_instances = Promise.all(module_promises)
.then(module => console.log(module.default)); // undefined
我期望创建一个实例化类对象的列表。假设检查我的module_promises
变量的日志(下面的屏幕截图)显示了存储在default
属性下的正确类,则我看不到问题可能出在哪里。