Передавать данные в массив дочерних компонентов в Angular

#angular #angular-arrays

#angular #angular-массивы

Вопрос:

У меня есть родительский компонент и дочерние компоненты в моем проекте и массив объектов, вызываемых из API в родительском компоненте.

  • Родительский компонент
 public Questions = [];
ngOnInit(): void {
    this.loadQuestions();
}
  
 <div *ngIf="Questions ">
   <app-child-card *ngFor="let item of Questions; index as i;" [data]="item" [index]="i" ></app-child-card>
</div>
  
  • Дочерний компонент
 @Input() data: any;
@Input() index: any;
ngOnInit(): void {
    console.log(this.data, this.index);
}
  

Даже если мой массив вопросов пуст, дочерний компонент отображался точно три раза при каждой попытке и получал вывод undefined undefined в консоли.

Комментарии:

1. Звучит странно. Я не вижу ничего плохого в опубликованном вами коде, мое лучшее предположение заключается в том, что ваш массив каким-то образом задан тремя неопределенными элементами. Вы пробовали записывать массив вопросов в консоль?

2. Не могли бы вы также опубликовать свой метод loadQuestions()?

Ответ №1:

пустой массив принимается в качестве true условия, поэтому вам нужно изменить свое условие на *ngIf="Questions.length>0"