修复首页逻辑
Change-Id: I40573cdba8c536f4ccd1c3c39c8f8ea90c6b211f
diff --git a/Merge/front/src/components/HomeFeed.jsx b/Merge/front/src/components/HomeFeed.jsx
index b959fd9..1b9035b 100644
--- a/Merge/front/src/components/HomeFeed.jsx
+++ b/Merge/front/src/components/HomeFeed.jsx
@@ -218,7 +218,7 @@
await fetchDeepRecommend()
}
setLoading(false)
- }, [recMode, fetchTagRecommend, fetchCFRecommend, fetchDeepRecommend])
+ }, [recMode, recCFNum]) // 移除函数依赖,只保留基本值依赖
// 拉取所有涉及用户的昵称
const fetchUserNames = async (userIds) => {
@@ -285,13 +285,14 @@
} else {
loadPosts()
}
- }, [useSearchRecommend, fetchUserTagsAndRecommend])
+ }, [useSearchRecommend]) // 只依赖 useSearchRecommend
+
+ // 单独处理推荐模式变化
useEffect(() => {
if (useSearchRecommend) {
fetchUserTagsAndRecommend()
}
- // eslint-disable-next-line
- }, [recMode, fetchUserTagsAndRecommend])
+ }, [recMode, recCFNum, useSearchRecommend]) // 添加 recCFNum 依赖
// 根据模式选择不同的加载方式
const handleSearch = e => {
diff --git a/Merge/front/src/components/UserProfile.jsx b/Merge/front/src/components/UserProfile.jsx
index 2e54fac..604d83c 100644
--- a/Merge/front/src/components/UserProfile.jsx
+++ b/Merge/front/src/components/UserProfile.jsx
@@ -445,9 +445,15 @@
const handleMenuClose = () => setAnchorEl(null);
const handleLogout = () => {
handleMenuClose();
- // 清理本地存储
+ // 清理本地存储中的token和用户信息
+ localStorage.removeItem('token');
+ localStorage.removeItem('user');
+ localStorage.removeItem('userId');
localStorage.clear();
- // 在此处添加退出登录逻辑,比如清理本地存储并跳转
+
+ showSnackbar('已成功注销', 'success');
+
+ // 跳转到首页
navigate('/login');
};
@@ -579,7 +585,21 @@
</Box>
<Box sx={{ mt: isMobile ? 2 : 0, alignSelf: 'flex-start' }}>
- {!isOwnProfile && currentUser && (
+ {isOwnProfile ? (
+ // 如果是自己的个人资料页面,显示注销按钮
+ <Button
+ variant="outlined"
+ color="error"
+ onClick={handleLogout}
+ sx={{
+ borderRadius: 20,
+ px: 3,
+ fontWeight: 'bold'
+ }}
+ >
+ 注销
+ </Button>
+ ) : currentUser && (
<>
<Button
variant={profileUser.is_following ? "outlined" : "contained"}