| 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)); |
| } |
| 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); |