javascript - Webpack - 动态导入一个类
问题描述
我试图在满足路由器条件时动态导入一个类。
我导入标准(非类)模块没有问题,因为它按预期工作:
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);
});
}
});
但是还是不开心!
在这种情况下如何动态导入一个类?
更新:
这是我的 Map 模块,作为一个非类模块,它可以工作:
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);
}
}
解决方案
class Map {
constructor() {
//
}
initialise(region) {
console.log("Map initialised for region: " + region);
}
}
export { Map }
Router.on({
'/:region/map': (params) => {
import("Controllers/map.js").then(({ Map })=> {
const MapClass = new Map();
MapClass.initialise(params.region);
});
}
});
你能试试上面的代码,看看你是否在控制台中获得类
推荐阅读
- iis - IIS 一个请求在两个站点上
- r - 最大限度地减少重新分配个人的成本
- javascript - 我怎样才能等待乘以可观察对象以调用顺序完成?
- javascript - JavaScript 如何将此 innerText 转换为有效的日期格式?
- arrow-functions - 为什么箭头函数(第 35 行)返回未定义?
- python - 我以前的 MATLAB,现在是 Python 代码中出现这么多错误的原因是什么?
- php - 如何使用其他数据库变量显示 longblob 图像
- javascript - 在字符串中查找特定字符并且不显示其余字符
- azure-ad-b2c - B2C 多语言问题,成功/失败消息以英文显示代替所选的 ui_locales 语言
- c# - 从 SP 读取多个 SELECT 返回的多个值