我正在尝试这样做
state.js
export default {
someValue: 'fooBar'
}
index.js
export default {
export {default as state} from './state',
export {default as actions} from './actions'
}
但我不允许,Unexpected keyword 'export' (2:2)
。有什么办法可以做到这一点?
答案 0 :(得分:1)
您只能在模块的顶层使用import
和export
。 (您可以在其他地方使用动态import()
,但不能在静态版本中使用。)
因此要导出该文件,您必须执行您在注释中要避免的内容:
import {default as state} from './state';
import {default as actions} from './actions';
export default {
state, actions
};
但是,请注意要向其中导出的内容:具有state
和actions
属性的对象,其初始值来自导入的{ {1}}和state
,但未未连接到它们。导入该对象的代码可以更改这些属性。您可以维护实时绑定:
action
,但是到那时,您有点重新发明了模块名称空间对象。您可能更愿意简单地:
import {default as state} from './state';
import {default as actions} from './actions';
export default {
get state() {
return state;
},
get actions() {
return actions;
}
};
,然后使用命名为exports的那些
export {default as state} from './state.js';
export {default as actions} from './actions.js';
或使用模块名称空间对象
import {state, actions} from "./index";