首页 > 解决方案 > {...} 类型的参数不能分配给 [ ] 类型的参数

问题描述

import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams } from 'ionic-angular';
import { EventDetail } from '../../models/event-detail/event-detail.interface';
import { AngularFireDatabase, AngularFireList } from 'angularfire2/database';

@IonicPage()
@Component({
  selector: 'page-event',
  templateUrl: 'event.html',
})
export class EventPage {

  eventDetail = {} as EventDetail;

  eventDetailRef$: AngularFireList<EventDetail[]>;

  constructor(public navCtrl: NavController, public navParams: NavParams, private database: AngularFireDatabase) {
  this.eventDetailRef$ = this.database.list('event-detail');
  }

  addEvent( eventDetail: EventDetail) {

    this.eventDetailRef$.push({
      eventName: this.eventDetail.eventName,
      eventDesc: this.eventDetail.eventDesc,
    });

  }

}

一年前我遵循了一个教程,我已经 rad “升级到 Angularfire 5.0”,谷歌搜索了同样的问题,结果完全不同

错误信息是:

“'{ eventName: string; eventDesc: String; }' 类型的参数不可分配给 'EventDetail[]' 类型的参数。对象文字只能指定已知属性,并且 'eventName' 类型不存在于 'EventDetail[] ’。”

和我的 EventDetail 接口:

export interface EventDetail {
    eventName: string;
    eventDesc: String;
    lat: number;
    lgt: number;

}

错误图像

标签: databaseangulartypescriptfirebase-realtime-databaseionic3

解决方案


更改eventDetailRef$: AngularFireList<EventDetail[]>;eventDetailRef$: AngularFireList<EventDetail>

因为因为您的类型是Array<Array>并且您尝试推送单个项目


推荐阅读