【问题标题】:Type 'Observable<{}[]>' cannot be converted to type 'AngularFireList<any[]>'类型 'Observable<{}[]>' 不能转换为类型 'AngularFireList<any[]>'
【发布时间】:2018-06-02 00:26:47
【问题描述】:

我对 Firebase 非常陌生,我正在学习这门课程:https://scotch.io/tutorials/build-a-status-update-app-w-reactions-using-angular-v4-and-firebase,但我的问题是本教程已过时,所以我在使用 Firebase 时遇到了一些问题

在教程中,有一个最近的函数用于获取最新的帖子......以前的代码看起来像这样:

// ----------------------------------------------------------------------
// Method to get the recent statuses from Firebase
// ----------------------------------------------------------------------

recent(amount: number): FirebaseListObservable<any[]> {
  return this.statuses = this.af.list('/statuses').map(arr => arr.reverse()) as FirebaseListObservable<any[]>;
}

后来我发现FirebaseListObservable已经过时了,现在是AngularFireList

所以我把我的代码改成这样

recent(amount: number): AngularFireList<any[]> {
  return this.statuses = this.af.list('/statuses').map(arr => arr.reverse()) as AngularFireList<any[]>;
}

我使用了来自Property 'map' does not exist on type 'AngularFireList<{}>' 的类似问题并尝试将我的代码更改为:

recent(amount: number): AngularFireList<any[]> {
  return this.statuses = this.af.list('/statuses').valueChanges().map(arr => arr.reverse()) as AngularFireList<any[]>;
}

Type 'Observable&lt;{}[]&gt;' cannot be converted to type 'AngularFireList&lt;any[]&gt;'.

谁能帮帮我?

【问题讨论】:

标签: javascript angular firebase firebase-realtime-database observable


【解决方案1】:

您可能希望在 RxJS 5.5+ 中使用 map() 作为可管道操作符。这将允许您反转从.list() 返回的数组。然后您应该可以简单地将其键入为Observable&lt;YourMagicType[]&gt;

import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';

recent(amount: number): Observable<YourMagicType[]> {
  return this.af.list<YourMagicType>('/statuses').valueChanges().pipe(
    map(arr => arr.reverse())
  );
}

希望对您有所帮助!

【讨论】:

  • 谢谢,解决了。
猜你喜欢
  • 2019-05-15
  • 2019-08-08
  • 1970-01-01
  • 2018-08-14
  • 1970-01-01
  • 2018-04-21
  • 2017-08-12
  • 2019-04-17
  • 2020-05-28
相关资源
最近更新 更多