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