我正在使用babel/ES6和webpack.我正在两个不同的地方导入相同的'actions'文件 - 它导出一堆函数.在一个地方它返回一个模块,另一个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
是在下面使用sugested ,我只是在示例中重新输入错误
NestedComponent.js
import actions from './actions' class NestedComponent extends OtherComponent { ... } console.log(actions); //<-------- logs undefined export default connect((state) => { ... },actions)(NestedComponent);
这与webpack定义模块/文件的顺序有关吗?
我遇到了一个类似的问题,由循环依赖引起.试图从文件'B'中导入文件'A'中的常量,然后又尝试从文件'A'导入.
这两种情况都不适用,因为您导入的值不正确.import foo from '...'
导入模块的默认导出,但您没有默认导出,只有命名导出.
你应该使用的是什么
import {test, test2} from './actions'; // or import * as actions from './actions';