React · Middle · Frage 51 von 75
Was ist an diesem Effekt falsch?
const [filtered, setFiltered] = useState([]);
useEffect(() => {
setFiltered(items.filter((i) => i.visible));
}, [items]);- 1
useEffectdarf unter keinen UmständensetStateaufrufen - 2Er speichert abgeleitete Daten; besser beim Rendern berechnen
- 3
itemsdarf nicht als Abhängigkeit des Effekts stehen
Antwort zeigen
Richtige Antwort: Er speichert abgeleitete Daten; besser beim Rendern berechnen
Erklärung
Der Effekt rendert einmal mit veraltetem filtered und dann noch einmal mit dem neuen Wert. const filtered = items.filter(...) (bei teurer Berechnung mit useMemo) ist immer synchron.