【发布时间】:2020-06-21 23:35:06
【问题描述】:
我遇到了一些错误,我无法弄清楚可能是什么问题。它似乎与 Typescript 和类型有关,但我无法通过安装相关包来修复它。
import { Injectable } from '@angular/core';
import { AngularFirestore } from 'angularfire2/firestore';
import { Subject } from 'rxjs/Subject';
import { Exercise } from './exercise.model';
u/Injectable()
export class TrainingService {
exerciseChanged = new Subject<Exercise>();
exercisesChanged = new Subject<Exercise[]>();
finishedExercisesChanged = new Subject<Exercise[]>();
private availableExercises: Exercise[] = [];
private runningExercise: Exercise;
constructor(private db: AngularFirestore) {}
fetchAvailableExercises() {
this.db
.collection('availableExercises')
.snapshotChanges()
.map(docArray => {
return docArray.map(doc => {
return {
id: doc.payload.doc.id,
name: doc.payload.doc.data().name,
duration: doc.payload.doc.data().duration,
calories: doc.payload.doc.data().calories
};
});
})
.subscribe((exercises: Exercise[]) => {
this.availableExercises = exercises;
this.exercisesChanged.next([...this.availableExercises]);
});
}
}
我尝试添加:
import 'rxjs/add/operator/map'
我也试过安装:
npm install u/types/rx --save
我在想我可能需要在模块部分添加一些东西,有人知道吗?
【问题讨论】:
-
这是否构成了minimal reproducible example,某人可以将其放入自己的 IDE 中来为自己演示问题?或者您能否提供一个指向显示这种情况的 Web IDE 的链接?
-
你应该将 map() 包裹在 .pipe() 中
-
根据你的 rxjs 版本,你需要引入 map 操作符: import { map } from 'rxjs/operators';并且(就像 Rexhin 提到的)添加管道: .snapshotChanges().pipe(map(docArray..)) l
标签: angular typescript firebase angularfire