State Management · Middle · Frage 14 von 75
Warum rendert dieser Selektor die Komponente bei jeder gesendeten Action neu?
const done = useSelector((s) => s.todos.filter((t) => t.done));- 1
filterliefert jedes Mal ein neues Array - 2Selektoren können keine Array-Methoden nutzen
- 3
useSelectorrendert bei jeder Action immer neu
Antwort zeigen
Richtige Antwort: filter liefert jedes Mal ein neues Array
Erklärung
useSelector läuft nach jedem Dispatch erneut und vergleicht Ergebnisse mit ===. Nutze einen memoisierten Selektor aus createSelector, der dasselbe Array liefert, solange sich s.todos nicht geändert hat.