gpt4 book ai didi

reactjs - useEffect 中无限循环

转载 作者:行者123 更新时间:2023-12-03 12:54:36 25 4
gpt4 key购买 nike

我一直在尝试 React 16.7-alpha 中的新钩子(Hook)系统,当我处理的状态是对象或数组时,我会陷入 useEffect 中的无限循环。

首先,我使用 useState 并使用一个空对象启动它,如下所示:

const [obj, setObj] = useState({});

然后,在useEffect中,我再次使用setObj将其设置为空对象。作为第二个参数,我传递 [obj],希望如果对象的内容没有更改,它就不会更新。但它不断更新。我想是因为无论内容如何,​​这些总是不同的对象,使得 React 认为它不断变化?

useEffect(() => {
setIngredients({});
}, [ingredients]);

数组也是如此,但作为一个原语,它不会像预期的那样陷入循环。

使用这些新的钩子(Hook),在检查内容是否更改时应该如何处理对象和数组?

最佳答案

将空数组作为第二个参数传递给 useEffect 使其仅在安装和卸载时运行,从而停止任何无限循环。

useEffect(() => {
setIngredients({});
}, []);

我在关于 React hooks 的博客文章 https://www.robinwieruch.de/react-hooks/ 中对此进行了澄清。

关于reactjs - useEffect 中无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53070970/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com