【发布时间】:2016-03-05 16:22:43
【问题描述】:
我正在使用带有 webpack 的 babel / ES6。我在两个不同的地方导入了相同的“动作”文件——它导出了一堆函数。它在一个地方返回一个模块,另一个undefined:
actions.js
export function test() { ... }
export function test2() { ... }
App.js
import actions from './actions'
class App extends React.Component { ... }
console.log(actions); //<-------- Object{test:function,test2:function)
export default connect((state) => { ... },actions)(App);
编辑
App.js 工作的原因是因为它实际上使用了import * as actions,如下所示,我只是在示例中重新输入错误
NestedComponent.js
import actions from './actions'
class NestedComponent extends OtherComponent { ... }
console.log(actions); //<-------- logs undefined
export default connect((state) => { ... },actions)(NestedComponent);
这与 webpack 定义模块/文件的顺序有关吗?
【问题讨论】:
-
您确定操作与 NestedComponent 位于同一目录中吗?
-
不,它实际上在我的设置中的嵌套文件夹中,但我已经仔细检查了路径,如果我更改它,编辑器和 babel 编译器都会抱怨(这意味着它很好)
-
@Felix King 是对的。由于您没有在操作文件中使用默认导出,因此您无法从中导入任何内容,除非您使用命名导入。
标签: reactjs ecmascript-6 webpack babeljs redux