我一直在试图弄清楚为什么在更改数据时不重新渲染钩子。我正在尝试找出答案,但是我找不到与如何使用适当的useEffect
相关的任何文档
这是我正在使用的数据,我正在从商店致电用户
const getAllUsers = useSelector((state) => state.userManagement.users);
因为我无法弄清楚这里是useEffect
useEffect(() => {
const fetchData = () => {
setIsLoading(true);
dispatch(getUsers());
setIsLoading(false);
};
fetchData();
}, [dispatch, getAllUsers]);
这将进入无限渲染
这是渲染
return (
<div className={classes.root}>
<div className={classes.content}>
{isLoading ? (
<div> Loading...</div>
) : (
<UsersTable users={getAllUsers} />
)}
</div>
</div>
);
useEffect(() => {
const fetchData = () => {
setIsLoading(true);
dispatch(getUsers());
setIsLoading(false);
};
fetchData();
}, []);
这可能会解决您的问题:
useEffect(() => {
const fetchData = () => {
setIsLoading(true);
dispatch(getUsers());
setIsLoading(false);
};
fetchData();
}, [isLoading]);