Angular · Senior · Pytanie 8 z 75
Co jest nie tak z tym efektem?
total = signal(0);
constructor() {
effect(() => this.total.set(this.price() * this.qty()));
}- ✓Poprawna odpowiedź: Stan pochodny powinien być
computed(); synchronizowanie sygnałów efektami dodaje zbędne cykle i grozi pętlą - 2Efekty nie mogą czytać więcej niż jednego sygnału
- 3
setnie można wywołać z liczbą
Wyjaśnienie
total = computed(() => this.price() * this.qty()) jest synchroniczny, leniwy i zawsze spójny. Jeśli ma być też zapisywalny - linkedSignal; efekty zostaw dla efektów ubocznych poza grafem sygnałów (DOM, magazyn, logowanie).