错误TS2740:类型'Observable '缺少类型'ProjectPage []'中的以下属性:length,pop,push,concat和另外25个

问题描述 投票:0回答:1

我不确定如何解决此错误。我已经看过一些帖子,但是我仍然没有解决这个问题的答案,我想这很简单,但是我对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个回答
0
投票
此作业:

this.project$ = this.route.paramMap.pipe( // ... )

表示project$的类型为Observable<T>,其中T是在this.afs.doc('projects/' + name).ref.get()承诺内返回的类型。我猜这是ProjectPage[]

所以您的声明应该是:

project$: Observable<ProjectPage[]>;

© www.soinside.com 2019 - 2024. All rights reserved.