dag*_*da1 25 javascript ecmascript-6
我有以下类定义:
class EmberReflux{
static createActions(actions) {
console.log(actions);
}
}
export { EmberReflux };
Run Code Online (Sandbox Code Playgroud)
当我从不同的文件导入它时:
import EmberReflux from '../utils/ember-reflux';
let TodoActions = EmberReflux.createActions(
[
"addItem",
"undo",
"redo"
]);
export { TodoActions };
Run Code Online (Sandbox Code Playgroud)
转化后看起来像这样
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;
});
Run Code Online (Sandbox Code Playgroud)
我不确定默认值是什么 EmberReflux['default']
我想像这样调用静态类方法:
EmberReflux.createActions
Run Code Online (Sandbox Code Playgroud)
但相反,我必须这样称呼它:
EmberReflux.EmberReflux.createActions
Run Code Online (Sandbox Code Playgroud)
ale*_*ods 37
您有两种选择:
EmberReflux像你一样出口:
export { EmberReflux };
Run Code Online (Sandbox Code Playgroud)
然后导入它像:
import { EmberReflux } from '../utils/ember-reflux';
Run Code Online (Sandbox Code Playgroud)default导出时使用:
export default EmberReflux;
Run Code Online (Sandbox Code Playgroud)
并导入它(就像你在做):
import EmberReflux from '../utils/ember-reflux';
Run Code Online (Sandbox Code Playgroud)在这两种情况下,您都可以使用您的EmberReflux喜好:
EmberReflux.createActions();
Run Code Online (Sandbox Code Playgroud)
小智 9
我没有足够的声誉来评论,alexpods的答案是完美的,但为了理解我们的朋友Ced问:
为什么我们需要第二个例子中的默认值?换句话说,为什么我们不能直接出口EmberReflux?
你这样写的时候:
export { EmberReflux };
Run Code Online (Sandbox Code Playgroud)
这是同样的写作:
export { EmberReflux: EmberReflux };
Run Code Online (Sandbox Code Playgroud)
这就是你需要运行EmberReflux.EmberReflux的原因,解决方案非常简单:
export default EmberReflux;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
37097 次 |
| 最近记录: |