簡體   English   中英

為什么我不能訪問 ngOnInit 方法中的全局屬性?

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

我正在向在線 api (randomuser.me) 注入一個基本的 http 請求,我想用結果創建一個包含 3 個對象的數組。 我正在嘗試訂閱 observable 並創建包含每個人 object 的姓名和姓氏的局部變量。 但是,我不能將此對象推送到我首先聲明的根級別屬性,正如它所說,“不能推送到未定義。我正在使用 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[] =[];

這應該解決。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM