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