这是使用下面的代码时说" cannot read property 'push' of undefined "的错误

  let deal = new Deal(  5, 'afaf', 'dafa',5,23 ) 
  this.publicDeals.push( deal )   // gives a error saying Cannot read property 'push' of undefined(…)

整体情况如下所示

export class Deal { 
  constructor(
    public id: number,
    public name: string,
    public  description: string,
    public originalPrice: number,
    public salePrice: number
      ) { }    
}

另一方面,

import { Component, OnInit } from '@angular/core'; 
import { Deal } from '../deal';
import { DealService } from '../deal.service';

@Component({
  selector: 'public-deals',
  templateUrl: 'public-deals.component.html',
  styleUrls: ['public-deals.component.css']
})

export class PublicDealsComponent implements OnInit {
  publicDeals: Deal[];

  constructor(
    private dealService: DealService) {
  }

  ngOnInit(): void {    
      let deal = new Deal(  5, 'afaf', 'dafa',5,23 ) 
      this.publicDeals.push( deal )   // gives a error saying Cannot read property 'push' of undefined(…)

  }

  purchase(item){
    alert("You bought the: " + item.name);
  }
}

推荐答案

publicDeals未启动;

publicDeals: Deal[] = [];

Angular相关问答推荐

如何取消针叶林输入的自动填充?

Angular:浏览器中未显示一些Google Content图标

Angulat 17@ngrx/Signals或全球服务,用什么?

如何跨不同组件使用ng模板

如何使用ChangeDetectionStrategy.OnPush?

使用jsPDF生成带有图像的PDF时出现灰色条纹

Angular 15 Ref 错误:初始化前无法访问组件 A

Angular p-triStateCheckbox for each Select 更改不同的 colored颜色

大型 Angular 12 应用程序 - 我如何管理 js 文件

Aws 代码部署在 BeforeBlockTraffic 步骤失败,即使在更新策略后也会超时

有条件地取消所有内部可观察对象或切换到仅发出一个值的新对象

错误 TS1086:无法在 Angular 9 的环境上下文中声明访问器

由于时区,Angular 4 日期管道显示错误的日期 - 如何解决这个问题?

等待多个promises完成

带有 Angular 的 Font Awesome 5

未绑定断点 - VS Code | Chrome | Angular

NG2-Charts 无法绑定到 datasets,因为它不是 canvas的已知属性

在Angular2 Dart中设置路由和RouterLink的正确方法是什么

Angular2中是否有像window.onbeforeunload这样的生命周期钩子?

如何处理Angular2中的查询参数