我在使用 Angular 服务时遇到了一个由 BehaviorSubject
引起的错误。
错误
Module '"ng5/node_modules/rxjs/BehaviorSubject"' has no exported member 'BehaviorSubject'.
data.service.ts
import { Injectable } from '@angular/core';
import { BehaviorSubject } from 'rxjs/BehaviorSubject';
@Injectable()
export class DataService {
constructor() { }
}
最佳答案
如果你想导入所有的 RxJS
就这样做:
import { BehaviorSubject } from 'rxjs';
如果你只需要 BehaviorSubject
:
import { BehaviorSubject } from 'rxjs/internal/BehaviorSubject';
编辑:解释
在 ES6/TypeScript 上,所有 import
都与 export
关键字相关。如果继续 node_modules/rxjs/index.d.ts
,您将看到所有导出的类。
这意味着可以将在此文件中导出的内容导入为:import { SomeThing } from 'rxjs';
但是,您生成的包文件将包含所有 RxJS 内容,包括该库的不必要部分。
为了避免这种情况,我建议你导入 from : from 'rxjs/internal/SomeThing'
(用你需要的替换 SomeThing)
对于运算符,您可以在 from 'rxjs/internal/operators/SomeThing'
上找到它
关于angular - node_modules/rxjs/BehaviorSubject 没有导出成员 'BehaviorSubject',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50569703/