簡體   English   中英

Angular / AngularFire2 Firestore-初始化可觀察的集合

[英]Angular / AngularFire2 Firestore - Initialise Observable Collection

我正在使用材料2,並且試圖通過分頁和排序來創建數據表,因此我需要觀察到我的集合,但是我認為我必須在控制器中錯誤地填充/初始化數組。

我一直在使用下面的方法用“費用” firestore集合中的數據填充“費用”數組,但這總是說“類型'Observable <{} []>'不可分配給類型'任何[]'” ...

import { Component, OnInit, AfterViewInit, ViewChild } from '@angular/core';

import { MatPaginator, MatTableDataSource, MatSort } from '@angular/material';

import { Observable } from 'rxjs/Observable';

import { AngularFireDatabase } from 'angularfire2/database';

import { AngularFirestore, AngularFirestoreCollection } from 'angularfire2/firestore';

@Component({
  selector: 'app-expense-list',
  templateUrl: './expense-list.component.html',
  styleUrls: ['./expense-list.component.scss']
})

export class ExpenseListComponent implements OnInit, AfterViewInit {

  tableColumns = [ 'id' ];

  expenses: any[];

  constructor(private db: AngularFirestore) {
    this.expenses = this.db.collection('/expenses').valueChanges();
  }

  ngOnInit() {

  }

  ngAfterViewInit() {

  }

  viewExpense(row) {
    console.log('viewExpense(' + row.id + '): ', row);
  }

}

如何正確創建一個由firestore集合中的數據填充的可觀察數組?

這只是一個打字問題。 如果將expenses類型更改為Observable<any[]>則將編譯代碼。

基本上,你告訴打字稿,你會被節省的純Array中的任何expenses屬性,但實際上是在保存Observable含有ArrayObsevable<Array<any>>Observable<any[]>

在此處了解有關泛型類型的更多信息: https : //www.typescriptlang.org/docs/handbook/generics.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM