Angular 8/9 Ошибка раскрывающегося списка PrimeNG MultiSelect: не удается прочитать свойство concat из undefined - PullRequest
0 голосов
/ 26 мая 2020

Итак, в моем коде я получаю некоторые данные из API, которые хочу отобразить в раскрывающемся списке. Делал это для нескольких раскрывающихся списков, передавая данные от дочернего к родительскому с помощью @Output и обратно к другому дочернему элементу с @Input. Я взял полученные данные и использовал concat, чтобы добавить их к dropdownList. Вот фрагмент:

<p-multiSelect [options]="dropdownList" [(ngModel)]="selectedItems (onChange)="onItemSelect($event.itemValue)" [style]="{'width': '100%'}"></p-multiSelect>
import { SelectItem } from 'primeng/api';

interface DropdownItem {
    name: string,
    code: string
}

export class TriviaGroupsDropdownComponent implements OnChanges {

  dropdownList: SelectItem[];
  selectedItems: DropdownItem[];
  item_count = 0;

  displayName: "gotThisFromAPI";
  catGroupName: "gotThisFromAPIToo";

  ngOnChanges() {
    this.dropdownList = this.dropdownList.concat({label: displayName, value: {id: this.item_count+1, name: catGroupName, code: ''}})
  }

}

В следующем раскрывающемся списке я хочу отобразить буквально то же самое, что и в раскрывающемся списке перед ним. Я передал dropdownList и selectedItems через EventEmitter его родительскому компоненту и вернулся обратно в его родственный компонент. Я уже делал это раньше с concat, и у меня не было ни одной проблемы. Теперь я пытаюсь создать этот повторяющийся раскрывающийся список и получаю следующую ошибку:

Cannot read property 'concat' of undefined

Очень запутано. Я читал кое-где, что concat работает только с массивами, а не с объектами. Но он по-прежнему работает с КАЖДЫМ выпадающим списком, который я только что создал! Я выдергиваю волосы, что я делаю не так?!

Вот стек для первого выпадающего списка, извините за беспорядочные комментарии, лол. Вы можете увидеть места, которые я использую concat в строках 90, 112, 134, 156, 178, 200 и 222: https://stackblitz.com/edit/1st-dropdown

Вот stackblitz для повторяющегося раскрывающегося списка: https://stackblitz.com/edit/2nd-dropdown

...