为什么我不能在 ngOnInit 方法中访问全局 属性?

Why can't I access a global property inside the ngOnInit Method?

我正在向在线 api (randomuser.me) 发出基本的 http 请求,我想用结果创建一个包含 3 个对象的数组。我正在尝试订阅可观察对象并创建包含每个人对象的姓名和姓氏的局部变量。但是,我无法将此对象推送到根级别 属性 我首先声明,正如它所说,“不能推送到未定义。我正在使用 Angular 12

这是 .ts 代码:

import { Component, OnInit, Output, EventEmitter } from '@angular/core';
import { HttpClient } from '@angular/common/http';

@Component({
  selector: 'app-beneficiario-card',
  templateUrl: './beneficiario-card.component.html',
  styleUrls: ['./beneficiario-card.component.scss'],
})
export class BeneficiarioCardComponent implements OnInit {
  @Output() usuariosEmitter = new EventEmitter<any[]>();

  public beneficiarios: any[];
  private benerficiariosUrl = 'https://randomuser.me/api/?results=1';

  constructor(private http: HttpClient) {}

  ngOnInit() {
    this.http.get(`${this.benerficiariosUrl}`).subscribe((data: any) => {
      const name = data.results.map(
        (usuario: string) => usuario['name']['first']
      );
      const last = data.results.map(
        (usuario: string) => usuario['name']['last']
      );
      const beneficiario: Beneficiarios = { name: name[0], last: last[0] };
      this.beneficiarios.push(beneficiario);
    });
  }
}

export interface Beneficiarios {
  name: string;
  last: string;
}

提前致谢。

您只声明了数组,没有初始化它。 尝试这样做

public beneficiarios: any[] =[];

这应该解决了。