Я играл с новой системой хуков в React 16.7-alpha и застревал в бесконечном цикле в useEffect, когда состояние, которое я обрабатываю, является объектом или массивом.
Сначала я использую useState и инициирую его с помощью пустого объекта, например этого:
const [obj, setObj] = useState({});
Затем в useEffect я использую setObj, чтобы снова установить для него пустой объект. В качестве второго аргумента я передаю [obj], надеясь, что он не обновится, если содержимое объекта не изменилось. Но он продолжает обновляться. Я думаю, потому что независимо от содержимого, это всегда разные объекты, заставляющие React думать, что он постоянно меняется?
useEffect(() => {
setIngredients({});
}, [ingredients]);
То же самое и с массивами, но как примитив он не застревает в цикле, как ожидалось.
Как, используя эти новые хуки, обрабатывать объекты и массив, проверяя, изменилось ли содержимое или нет?