【问题标题】:error TS2740: Type 'Observable<DocumentData>' is missing the following properties from type 'ProjectPage[]': length, pop, push, concat, and 25 more错误 TS2740:类型“Observable<DocumentData>”缺少类型“ProjectPage[]”中的以下属性:长度、弹出、推送、连接和另外 25 个
【发布时间】:2020-07-20 07:47:57
【问题描述】:

我不确定如何解决此错误。我看过一些帖子,但我仍然没有得到这个问题的答案,我猜这很容易,但我对 Angular 很陌生,真的不知道如何解决它。

import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { AngularFirestore } from '@angular/fire/firestore';
import { switchMap } from 'rxjs/operators';

import { ProjectPage } from './project-page';

@Component({
  selector: 'app-project-page',
  templateUrl: './project-page.component.html',
  styleUrls: ['./project-page.component.scss']
})
export class ProjectPageComponent implements OnInit {

  project$: ProjectPage[];
  constructor(private afs: AngularFirestore, private route: ActivatedRoute) {}

  ngOnInit() {
    this.project$ = this.route.paramMap.pipe(
      switchMap((params) => {
        const name = params.get('name');
        return this.afs.doc('projects/' + name).ref.get()
        .then((doc) => {
          return doc.data();
        })
      })
    )
  }
}

【问题讨论】:

    标签: angular rxjs observable angularfire


    【解决方案1】:

    这里的问题是你的打字。您将 project$ 指定为 ProjectPage[] 类型,但是通过使用路由 paramMap 您将其分配给 Observable。如果您更改,打字可能会起作用

    project$: ProjectPage[];

    project$: Observable&lt;ProjectPage[]&gt;;

    【讨论】:

      猜你喜欢
      • 2019-12-04
      • 1970-01-01
      • 2022-11-28
      • 2020-10-19
      • 1970-01-01
      • 2021-02-15
      • 2019-09-11
      • 1970-01-01
      • 2020-05-23
      相关资源
      最近更新 更多