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