最佳答案
我一直在使用 React 16.7-alpha 中的新钩子系统,当我处理的状态是一个对象或数组时,我陷入了 useEffect 的无限循环中。
首先,我使用 useState 并用一个空对象来启动它,如下所示:
const [obj, setObj] = useState({});
然后,在 useEffect 中,我使用 setObj 再次将其设置为空对象。作为第二个参数,我传递[ obj ] ,希望它不会更新,如果对象的 内容没有改变。但它一直在更新。我猜是因为不管内容是什么,这些总是不同的对象使得 React 认为它在不断变化?
useEffect(() => {
setIngredients({});
}, [ingredients]);
对于数组也是如此,但是作为一个原语,它不会像预期的那样卡在循环中。
使用这些新的钩子,我应该如何处理对象和数组时,检查天气的内容已经改变或没有?