Zarządzanie stanem · Senior · Pytanie 13 z 75

Czego potrzebuje zmemoizowany selektor z createSelector, by był wydajny z argumentami?

const selectByCategory = createSelector(
  [(s) => s.products, (s, category) => category],
  (products, category) => products.filter((p) => p.category === category),
);

Wyjaśnienie

Domyślny cache pamięta ostatnie wejścia, więc przeplatanie argumentów w kilku komponentach ('books', 'toys') za każdym razem przelicza wynik. Twórz selektor na komponent (useMemo(makeSelector, [])) albo skonfiguruj większy cache (weakMapMemoize - domyślny w Reselect 5).

Do poczytania

Błąd w pytaniu

Zarządzanie stanem · Senior · pytanie 13

Sprawdź się

Rozwiąż test Zarządzanie stanem · Senior: pytania i odpowiedzi są tasowane, a na końcu czeka przegląd błędów.

Rozwiąż ten test