修改好友动态、发布动态、促销模块、创建帖子,Resolve review.
Change-Id: I84a2460dd1208bc703b0527d98225204d03e5efc
diff --git a/src/context/UserContext.js b/src/context/UserContext.js
index a2be382..69f73bd 100644
--- a/src/context/UserContext.js
+++ b/src/context/UserContext.js
@@ -1,7 +1,49 @@
+// 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();
+// Provider 组件
export const UserProvider = ({ children }) => {
const [user, setUser] = useState(null);
const [loading, setLoading] = useState(true);
@@ -11,7 +53,7 @@
if (storedUser) {
setUser(JSON.parse(storedUser));
} else {
- // 设置默认用户(id: 1)
+ // 设置默认用户
const defaultUser = { id: 1, name: '测试用户' };
localStorage.setItem('user', JSON.stringify(defaultUser));
setUser(defaultUser);
@@ -29,11 +71,17 @@
setUser(null);
};
+ // ✅ 加载完用户数据后再渲染子组件,避免子组件访问 null
+ if (loading) {
+ return <div>正在加载用户信息...</div>;
+ }
+
return (
- <UserContext.Provider value={{ user, loading, saveUser, logout }}>
+ <UserContext.Provider value={{ user, saveUser, logout }}>
{children}
</UserContext.Provider>
);
};
+// 自定义 hook
export const useUser = () => useContext(UserContext);