React · Middle · Frage 53 von 75
Warum verbindet sich dieser Chat-Effekt neu, wenn das Theme wechselt?
useEffect(() => {
const conn = connect(roomId);
conn.on("connected", () => showToast("Connected", theme));
return () => conn.disconnect();
}, [roomId, theme]);- 1
themeist eine Abhängigkeit; den nicht reaktiven Teil inuseEffectEventauslagern - 2Effekte laufen immer neu, sobald sich irgendein Zustand der App ändert
- 3
showToastmuss inuseMemogepackt werden, damit es stabil bleibt
Antwort zeigen
Richtige Antwort: theme ist eine Abhängigkeit; den nicht reaktiven Teil in useEffectEvent auslagern
Erklärung
Jeder reaktive Wert, der in einem Effekt verwendet wird, muss aufgeführt sein. Mit useEffectEvent kann der Handler das aktuelle theme lesen, ohne dass der Effekt davon abhängt.