优化个人页
This commit is contained in:
@@ -11,18 +11,31 @@ export interface UserState {
|
||||
updateUserInfo: (userInfo: Partial<UserInfoType>) => void;
|
||||
}
|
||||
|
||||
const fetchUserInfo = async (set) => {
|
||||
try {
|
||||
const res = await fetchUserProfile();
|
||||
set({ user: res.data });
|
||||
return res.data;
|
||||
} catch {}
|
||||
};
|
||||
|
||||
export const useUser = create<UserState>()((set) => ({
|
||||
user: {},
|
||||
fetchUserInfo: async () => {
|
||||
try {
|
||||
const res = await fetchUserProfile();
|
||||
set({ user: res.data });
|
||||
return res.data
|
||||
} catch { }
|
||||
},
|
||||
fetchUserInfo: fetchUserInfo.bind(null, set),
|
||||
updateUserInfo: async (userInfo: Partial<UserInfoType>) => {
|
||||
const res = await updateUserProfile(userInfo);
|
||||
set({ user: res.data });
|
||||
try {
|
||||
// 先更新后端
|
||||
await updateUserProfile(userInfo);
|
||||
// 然后立即更新本地状态
|
||||
set((state) => ({
|
||||
user: { ...state.user, ...userInfo },
|
||||
}));
|
||||
// 最后重新获取完整用户信息确保数据一致性
|
||||
await fetchUserInfo(set);
|
||||
} catch (error) {
|
||||
console.error("更新用户信息失败:", error);
|
||||
throw error;
|
||||
}
|
||||
},
|
||||
}));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user