javascript - 如何合并多个文件的命名导出并将其导出为一个对象

标签 javascript import ecmascript-6 redux

我有很多 Action 创建者,我正在尝试将它们组织到几个不同的文件中。每个单独的文件都有导出的函数,例如:

export function addData(data) {
  return {
    type: 'ADD_DATA',
    data
  }
}

在将它们分成不同的文件之前,它们的导入方式如下:

import { addData } from './actions/actionCreators'

但是现在的结构就像

├─┬ actions
│ ├── actionsCreators1.js
│ ├── actionsCreators2.js
│ └── index.js

我想将它们合并到索引文件中,并按最初命名的方式导出它们。我尝试过的是:

actions/index.js

import * as actions1 from './actionCreators1'
import * as actions2 from './actionCreators2'

export default {
  ...actions1,
  ...actions2
}

但是,导入时命名函数是未定义的。我可以将它们单独引入 import { action1, action2 } from './actionCreatos1' 并且它会起作用,但是必须将所有内容写在两个地方并不理想。

如何合并这些导入并将它们导出为一个对象?

最佳答案

您可以使用模块系统本身来传递名称,而不是依赖扩展,例如

// actions/index.js

export * from './actionCreators1'
export * from './actionCreators2'

因此,只要文件中的名称不冲突,它们就会很好地传递。

关于javascript - 如何合并多个文件的命名导出并将其导出为一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49326427/

相关文章:

javascript - 日期/时间问题 - Moment.js

javascript - 根据输入中的值重新获取 FullCalendar 事件

javascript - 如何在数据可用时执行音频持续时间警报?

python - "import"是 pythonic 数据吗?

react-native - 意外的导入 token - 使用 Jest 测试 React Native

javascript - 如何检查 html 元素是否在 IE6 - IE8 的样式标签中设置了一些样式属性?

python - AWS 无法导入模块 'app' : no module named Pymysql

typescript - 如何在接口(interface)声明文件(d.ts)中导入枚举

javascript - ECMAScript : Where can we find specification about accessibility of let/const variables

javascript - 如何在 JavaScript (ES6) 中子类化 Selection 对象?