Zarządzanie stanem · Middle · Pytanie 14 z 75
Dlaczego ten selektor renderuje komponent przy każdej wysłanej akcji?
const done = useSelector((s) => s.todos.filter((t) => t.done));- ✓Poprawna odpowiedź:
filterza każdym razem zwraca nową tablicę, więc referencja zawsze się zmienia - 2
useSelectorzawsze renderuje przy każdej akcji - 3Selektory nie mogą używać metod tablic
Wyjaśnienie
useSelector uruchamia się po każdym dispatch i porównuje wyniki przez ===. Użyj zmemoizowanego selektora z createSelector: zwraca tę samą tablicę, dopóki s.todos się nie zmieni.