Angular · Middle · Запитання 2 з 75
Чому OnPush-нащадок не оновлюється після addItem() у батьку?
// parent
items = [{ id: 1 }];
addItem() { this.items.push({ id: 2 }); }
// template: <app-list [items]="items" />- ✓Правильна відповідь: Масив було мутовано, посилання у вході те саме, тому OnPush-нащадок не позначається для перевірки
- 2OnPush-компоненти не можуть отримувати масиви у входах
- 3
pushзаборонений у компонентах Angular
Пояснення
OnPush порівнює входи за посиланням. Створіть новий масив (this.items = [...this.items, item]) або зберігайте список у сигналі й оновлюйте його іммутабельно.