Angular · Middle · Frage 2 von 75
Warum aktualisiert sich dieses OnPush-Kind nicht, nachdem das Elternteil addItem() ausführt?
// parent
items = [{ id: 1 }];
addItem() { this.items.push({ id: 2 }); }
// template: <app-list [items]="items" />- 1
pushist an Feldern von Angular-Komponenten nicht erlaubt - 2OnPush-Komponenten können keine Arrays als Inputs bekommen
- 3Das Array wurde verändert, die Input-Referenz blieb also gleich
Antwort zeigen
Richtige Antwort: Das Array wurde verändert, die Input-Referenz blieb also gleich
Erklärung
OnPush vergleicht Inputs per Referenz. Erzeuge ein neues Array (this.items = [...this.items, item]) oder halte die Liste in einem Signal und aktualisiere sie unveränderlich.