React · Middle · Pytanie 40 z 75

Dlaczego ten selektor powoduje re-render przy każdej akcji w store?

const done = useSelector(state =>
  state.todos.filter(t => t.done)
);

Wyjaśnienie

useSelector uruchamia się po każdym dispatchu i porównuje wynik po referencji. Nowa tablica nigdy nie jest równa poprzedniej. Rozwiązaniem jest memoizowany selektor createSelector, który zwraca tę samą tablicę, dopóki state.todos się nie zmienił.

Do poczytania

Błąd w pytaniu

React · Middle · pytanie 40

Sprawdź się

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

Rozwiąż ten test