React · Middle · Frage 54 von 75
Warum läuft dieser Effekt bei jedem Rendern neu, obwohl options gleich aussieht?
const options = { roomId, serverUrl };
useEffect(() => connect(options), [options]);- 1
serverUrlfehlt in der Liste der Abhängigkeiten - 2Effekte dürfen nicht von Objekten abhängen, nur von Primitiven
- 3Ein neues Objekt bei jedem Rendern ändert die Abhängigkeit
Antwort zeigen
Richtige Antwort: Ein neues Objekt bei jedem Rendern ändert die Abhängigkeit
Erklärung
Erzeuge das Objekt im Effekt und hänge von den Primitiven ab ([roomId, serverUrl]), oder memoisiere es. Objekte und Funktionen werden per Referenz verglichen.