Angular · Junior · Pytanie 39 z 75
Dlaczego taka mutacja tablicy w sygnale jest błędem?
items = signal<string[]>([]);
add(x: string) { this.items().push(x); }- ✓Poprawna odpowiedź: Referencja w sygnale się nie zmienia, więc Angular nie dostaje powiadomienia; użyj
update(list => [...list, x]) - 2Sygnały nie mogą zawierać tablic
- 3
pushrzuca błąd wewnątrz sygnałów
Wyjaśnienie
Domyślnie sygnały porównują wartości przez Object.is. Mutacja tej samej tablicy zachowuje referencję, więc zależne elementy nie są powiadamiane. Twórz nową tablicę lub obiekt.