我正在使用 useEffect 钩子并使用函数getStoreUsers获取带有 fetch 调用的用户数据列表,该函数在响应上调度操作并将shopUsers(这是一个数组)存储在 redux 存储中。
在数组依赖项中,我正在编写[shopUsers]。我不知道为什么它会导致无限渲染。
这是我如何使用 useEffect 钩子:
useEffect(() => {
const { getStoreUsers, shopUsers } = props;
setLoading(true);
getStoreUsers().then(() => {
setLoading(false);
}).catch(() => {
setLoading(false);
});
}, [shopUsers]);
我只想在 shopUsers 数组中的数据发生更改时重新渲染组件。
如果我在数组依赖项中写入 shopUsers.length。它停止重新渲染。
但是,让我们假设我有一个页面,当用户单击 userList 并在下一页更新用户数据时,该页面会打开。更新后,我希望用户返回到以前未卸载的相同组件。因此,在这种情况下,数组长度保持不变,但更新了数组索引中的数据。所以 shopUsers.length 在这种情况下不起作用。