修改帖子

Change-Id: I467b35242bce8b27d612eb96f2710b27aa03d1d2
diff --git a/src/context/UserContext.js b/src/context/UserContext.js
index 69f73bd..39ab6cd 100644
--- a/src/context/UserContext.js
+++ b/src/context/UserContext.js
@@ -1,49 +1,7 @@
-// import React, { createContext, useContext, useState, useEffect } from 'react';
-
-// const UserContext = createContext();
-
-// export const UserProvider = ({ children }) => {
-//   const [user, setUser] = useState(null);
-//   const [loading, setLoading] = useState(true);
-
-//   useEffect(() => {
-//     const storedUser = localStorage.getItem('user');
-//     if (storedUser) {
-//       setUser(JSON.parse(storedUser));
-//     } else {
-//       // 设置默认用户(id: 1)
-//       const defaultUser = { id: 1, name: '测试用户' };
-//       localStorage.setItem('user', JSON.stringify(defaultUser));
-//       setUser(defaultUser);
-//     }
-//     setLoading(false);
-//   }, []);
-
-//   const saveUser = (userData) => {
-//     localStorage.setItem('user', JSON.stringify(userData));
-//     setUser(userData);
-//   };
-
-//   const logout = () => {
-//     localStorage.removeItem('user');
-//     setUser(null);
-//   };
-
-//   return (
-//     <UserContext.Provider value={{ user, loading, saveUser, logout }}>
-//       {children}
-//     </UserContext.Provider>
-//   );
-// };
-
-// export const useUser = () => useContext(UserContext);
-
 import React, { createContext, useContext, useState, useEffect } from 'react';
 
-// 创建上下文
-const UserContext = createContext();
+export const UserContext = createContext();
 
-// Provider 组件
 export const UserProvider = ({ children }) => {
   const [user, setUser] = useState(null);
   const [loading, setLoading] = useState(true);
@@ -51,19 +9,29 @@
   useEffect(() => {
     const storedUser = localStorage.getItem('user');
     if (storedUser) {
-      setUser(JSON.parse(storedUser));
-    } else {
-      // 设置默认用户
-      const defaultUser = { id: 1, name: '测试用户' };
-      localStorage.setItem('user', JSON.stringify(defaultUser));
-      setUser(defaultUser);
+      try {
+        const parsedUser = JSON.parse(storedUser);
+        // 验证用户对象是否有效
+        if (parsedUser && parsedUser.userId) {
+          setUser(parsedUser);
+        } else {
+          localStorage.removeItem('user');
+        }
+      } catch (error) {
+        console.error('解析用户信息失败:', error);
+        localStorage.removeItem('user');
+      }
     }
     setLoading(false);
   }, []);
 
   const saveUser = (userData) => {
-    localStorage.setItem('user', JSON.stringify(userData));
-    setUser(userData);
+    if (userData && userData.id) {
+      localStorage.setItem('user', JSON.stringify(userData));
+      setUser(userData);
+    } else {
+      console.error('无效的用户数据:', userData);
+    }
   };
 
   const logout = () => {
@@ -71,17 +39,17 @@
     setUser(null);
   };
 
-  // ✅ 加载完用户数据后再渲染子组件,避免子组件访问 null
-  if (loading) {
-    return <div>正在加载用户信息...</div>;
-  }
-
   return (
-    <UserContext.Provider value={{ user, saveUser, logout }}>
+    <UserContext.Provider value={{ user, saveUser, logout, loading }}>
       {children}
     </UserContext.Provider>
   );
 };
 
-// 自定义 hook
-export const useUser = () => useContext(UserContext);
+export const useUser = () => {
+  const context = useContext(UserContext);
+  if (!context) {
+    throw new Error('useUser must be used within a UserProvider');
+  }
+  return context;
+};
\ No newline at end of file