React · Middle · Frage 12 von 75

Warum läuft dieser Effekt nach jedem Rendering?

const options = { roomId, serverUrl };

useEffect(() => {
  const conn = connect(options);
  return () => conn.close();
}, [options]);
Antwort zeigen

Richtige Antwort: options ist bei jedem Rendern ein neues Objekt

Erklärung

Abhängigkeiten werden per Object.is verglichen, und ein neues Objektliteral ist nie gleich dem vorherigen. Richtig ist, das Objekt im Effekt zu erzeugen und von Primitiven abzuhängen: [roomId, serverUrl]. Den Linter zu unterdrücken ist eine schlechte Idee.

Zum Weiterlesen

Fehler in der Frage

React · Middle · Frage 12

Teste dich selbst

Mach den Test React · Middle: Fragen und Antworten werden gemischt, und am Ende wartet eine Übersicht der Fehler.

Diesen Test machen