Was steuert das Dependency-Array von useEffect eigentlich?
Es sagt React, welche Werte der Effect liest, sodass der Effect nur erneut läuft, wenn sich einer davon ändert. Ein leeres Array bedeutet: einmal nach dem Mount ausführen; lässt man das Array ganz weg, läuft der Effect nach jedem Render — genau so entstehen Endlosschleifen. Ein verwendeter Wert, der im Array fehlt, ist der andere Fehler: Der Effect schließt über einen veralteten Wert und nutzt ihn für immer weiter.