【问题标题】:Property 'id/name/duration/calories' does not exist on type 'unknown'“未知”类型上不存在属性“id/name/duration/calories”
【发布时间】:2020-11-29 15:43:39
【问题描述】:
import { NgForm } from '@angular/forms';
import { Exercise } from './../exercise.model';
import { TrainingService } from './../training.service';
import { Component, OnInit, ViewChild } from '@angular/core';
import { AngularFirestore } from 'angularfire2/firestore';
import { Observable, Subscriber } from 'rxjs';
import 'rxjs/add/operator/map';

@Component({
  selector: 'app-new-training',
  templateUrl: './new-training.component.html',
  styleUrls: ['./new-training.component.css'],
})
export class NewTrainingComponent implements OnInit {
  exercises: Observable<Exercise[]>;

  constructor(
    private trainingService: TrainingService,
    private db: AngularFirestore
  ) {}

  ngOnInit(): void {
    this.exercises = this.db
      .collection('availableExercises')
      .snapshotChanges()
      .map((docArray) => {
        return docArray.map((doc) => {
          return {
            id: doc.payload.doc.data().id,
            name: doc.payload.doc.data().name,
            duration: doc.payload.doc.data().duration,
            calories: doc.payload.doc.data().calories,
          };
        });
      });
  }

  onStartTraining(form: NgForm) {
    this.trainingService.startExercise(form.value.exercise);
  }
}

id、姓名、持续时间和卡路里有问题。它们都带有下划线,并且错误提示:所有四个的“未知”类型都不存在属性。所以不确定是什么问题。我也试过了

id: doc.payload.doc['id'],
name: doc.payload.doc['name'],
duration: doc.payload.doc['duration'],
calories: doc.payload.doc['calories'],

也不行。在 Maximilian Schwarzmuller 的教程之后重复。会给予任何帮助。

【问题讨论】:

  • docArray.map((doc) =&gt; { 行中尝试添加:any 喜欢docArray.map((doc: any) =&gt; {
  • 您期望的行为是什么,而不是您现在看到的?请编辑问题,以明确哪些问题未按您预期的方式工作,以及您为调试它所做的工作。

标签: javascript angular firebase google-cloud-firestore


【解决方案1】:

答案是将函数ngOnInit 的下一行从:

        return docArray.map((doc) => {

进入:

        return docArray.map((doc: any) => {

这将允许您避免在编译期间进行类型检查。如前所述here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-10-04
    • 2022-08-18
    • 1970-01-01
    • 2021-11-24
    • 2019-12-01
    • 2018-03-09
    • 2020-08-29
    相关资源
    最近更新 更多