如何在javascript中导入多个东西

时间:2018-02-21 15:30:15

标签: javascript redux babel redux-observable

我想在js中导入多个东西,我尝试过这样的import { Component, OnInit, Input } from '@angular/core'; import { OrdersService } from '../orders.service'; import { Order } from '../order'; @Component({ selector: 'app-order-details', templateUrl: './order-details.component.html', styleUrls: ['./order-details.component.scss'], providers: [OrdersService] }) export class OrderDetailsComponent implements OnInit { @Input() order: Order; constructor(private _ordersService: OrdersService) { } ngOnInit() { this.getOrder(); console.log(this.order); } getOrder(): any { this._ordersService.getOrder(1).subscribe(order => this.order = order); }

导出文件AppEpics.js:

import *

导入文件:

export fooEpic = Observable.of() // some fancy code;
export barEpic = Observable.of() // some other fancy code;

我发现当我记录import * as App from './AppEpics' export default combineEpics(...App) 时,我得到一个包含foo和bar的对象,但是当我记录App时,我什么都没得到。

我正在使用babel预设env并立即做出反应。我该如何解决?

BTW,combineEpics只接受像...App这样的史诗,所以我不能这样调用这个函数:

fooEpics

3 个答案:

答案 0 :(得分:1)

从导入中删除“as App”:

import * from './App'

它应该有用。

答案 1 :(得分:1)

App是你的情况下的对象,你试图将它作为函数combineEpics(...App)的参数传播,只有当App是数组时才会起作用。

如果您想将所有导出的值传递到combineEpics,您需要像combineEpics(...Object.values(App))那样做或在App.js中添加export default [foo, bar]并在文件中添加import App from './App' and combineEpics(...App)。 / p>

答案 2 :(得分:0)

如果您想一次导入所有内容,也可以使用

import * from './yourName'

如果您要将特定组件导入文件

import { Comp1, Comp2, Comp3 } from './yourName'

需要导出组件。你也可以马上做到这一点。为此,我在package.json中添加了对文件(index.js)的默认引用。

  "name": "yourName",
  "version": "1.0.0",
  "main": "index.js",

在index.js中,我添加了导出。

 export { default as Comp1 } from './yourPath/comp1'