Ich habe mit dem neuen Hook-System in React 16.7-alpha herumgespielt und stecke in useEffect in einer Endlosschleife fest, wenn der Status, den ich verarbeite, ein Objekt oder Array ist.
Zuerst benutze ich useState und initiiere es mit einem leeren Objekt wie folgt:
const [obj, setObj] = useState({});
Dann benutze ich in useEffect setObj, um es wieder auf ein leeres Objekt zu setzen. Als zweites Argument übergebe ich [obj] in der Hoffnung, dass es nicht aktualisiert wird, wenn sich der Inhalt des Objekts nicht geändert hat. Aber es wird ständig aktualisiert. Ich denke, weil dies unabhängig vom Inhalt immer unterschiedliche Objekte sind, die React denken lassen, dass es sich ständig ändert?
useEffect(() => {
setIngredients({});
}, [ingredients]);
Das gleiche gilt für Arrays, aber als Grundelement bleibt es nicht wie erwartet in einer Schleife hängen.
Wie soll ich mit diesen neuen Hooks mit Objekten und Arrays umgehen, wenn überprüft wird, ob sich der Inhalt geändert hat oder nicht?