【发布时间】:2018-01-08 20:48:51
【问题描述】:
我有一个index.js 文件,内容如下:
import aReducer from './ducks/a';
import bReducer from './ducks/b';
import * as aSelectors from './ducks/a';
import * as bSelectors from './ducks/b';
console.log(aReducer) //function i expect
console.log(aSelectors) //object with keys to selectors i expect
export { aReducer, bReducer, ...aSelectors, ...bSelectors };
如果我在这个文件中 console.log 我看到 reducer 是我期望的函数,并且选择器别名是具有我期望的选择器的键的对象。 reducer 是鸭子文件的默认导出,选择器是从同一个文件中导出的。
但是,当我尝试使用另一个文件导入此模块时,我只能导入两个减速器。这两个选择器是未定义的。我认为解构会将每个键添加到我的导出对象中。我究竟做错了什么?
other_file1.js
import { aReducer, bReducer } from 'my-module'; //works!
other_file2.js
import { someSelectorThatWasInMyaSelectorsObject } from 'my-module'; //does NOT work!
【问题讨论】:
-
您不能在
export {};语句中使用...。这不是给你一个语法错误吗? -
不,没有错误 - 它不只是导出一个对象吗?我们可以在对象中使用
...。 -
很奇怪。你用什么来处理你的模块处理?
标签: javascript import ecmascript-6 export es6-modules