Javascript 使用babel transpiler使用es6模块导入类并调用静态方法
我有以下类定义:Javascript 使用babel transpiler使用es6模块导入类并调用静态方法,javascript,ecmascript-6,Javascript,Ecmascript 6,我有以下类定义: class EmberReflux{ static createActions(actions) { console.log(actions); } } export { EmberReflux }; 从其他文件导入时: import EmberReflux from '../utils/ember-reflux'; let TodoActions = EmberReflux.createActions( [ "addItem", "undo",
class EmberReflux{
static createActions(actions) {
console.log(actions);
}
}
export { EmberReflux };
从其他文件导入时:
import EmberReflux from '../utils/ember-reflux';
let TodoActions = EmberReflux.createActions(
[
"addItem",
"undo",
"redo"
]);
export { TodoActions };
被传输的数据看起来像这样
define('ember-reflux/utils/todo-actions', ['exports', 'ember-reflux/utils/ember-reflux'], function (exports, EmberReflux) {
'use strict';
var TodoActions = EmberReflux['default'].createActions(["addItem", "undo", "redo"]);
exports.TodoActions = TodoActions;
});
我不确定['default']
我想这样调用静态类方法:
EmberReflux.createActions
EmberReflux.EmberReflux.createActions
export { EmberReflux };
export { EmberReflux: EmberReflux };
但我不得不这样称呼它:
EmberReflux.createActions
EmberReflux.EmberReflux.createActions
export { EmberReflux };
export { EmberReflux: EmberReflux };
您有两个选择:
export { EmberReflux };
import EmberReflux from '../utils/ember-reflux';
然后像这样导入它:
import { EmberReflux } from '../utils/ember-reflux';
默认值
:
export default EmberReflux;
export default EmberReflux;
并导入它(就像您正在做的那样):
代码,如:
EmberReflux.createActions();
我没有足够的声誉来评论,亚历克斯波德一家的回答是完美的,但为了了解我们的朋友,Ced问道:
为什么在第二个示例中需要默认值?换句话说,为什么我们不能直接出口
当你这样写的时候:
EmberReflux.createActions
EmberReflux.EmberReflux.createActions
export { EmberReflux };
export { EmberReflux: EmberReflux };
还是这样写的:
EmberReflux.createActions
EmberReflux.EmberReflux.createActions
export { EmberReflux };
export { EmberReflux: EmberReflux };
这就是为什么您需要运行EmberReflux.EmberReflux,解决方案非常简单:
尝试导出默认值
为什么在第二个示例中需要默认值?换句话说,为什么我们不能直接导出EmberReflow?因为在第二个示例中,您没有将EmberReflow
分解为它自己的变量。虽然此代码可以解决OP的问题,但最好包含关于代码如何解决OP问题的解释。通过这种方式,未来的访问者可以从您的帖子中学习,并将其应用到自己的代码中。因此,它不是一种编码服务,而是一种知识资源。此外,高质量、完整的答案更有可能被提升。这些特性,以及所有帖子都是独立的要求,是SO作为一个平台的一些优势,使其区别于论坛。您可以编辑以添加其他信息和/或使用源文档补充说明。