提交 fa814afd 作者: 翁进城

优化userProvider

上级 49be21fc
...@@ -11,7 +11,7 @@ export const UserContext = createContext<{ ...@@ -11,7 +11,7 @@ export const UserContext = createContext<{
testLogin: () => void; testLogin: () => void;
logout: () => void; logout: () => void;
userInfo: UserInfoResp | null | ""; userInfo: UserInfoResp | null | "";
setUserInfo: Dispatch<SetStateAction<UserInfoResp | null | "">>; setUserInfo: Dispatch<SetStateAction<UserInfoResp | null | undefined>>;
needLogin: Boolean; needLogin: Boolean;
setNeedLogin: Dispatch<SetStateAction<Boolean>>; setNeedLogin: Dispatch<SetStateAction<Boolean>>;
}>({ }>({
...@@ -27,12 +27,14 @@ type Props = { ...@@ -27,12 +27,14 @@ type Props = {
children: React.ReactNode; children: React.ReactNode;
}; };
const UserProvider = ({ children }: Props) => { const UserProvider = ({ children }: Props) => {
const [userInfo, setUserInfo] = useState<UserInfoResp | null | ''>(null); const [userInfo, setUserInfo] = useState<UserInfoResp | null | undefined>(null);
const [needLogin, setNeedLogin] = useState<Boolean>(false); //用于通知登录modal需要打开 const [needLogin, setNeedLogin] = useState<Boolean>(false); //用于通知登录modal需要打开
useEffect(() => { useEffect(() => {
try { try {
setUserInfo(JSON.parse(window.localStorage.getItem("userInfo") || "")); setUserInfo(
JSON.parse(window.localStorage.getItem("userInfo") || "") || undefined
);
} catch (e) {} } catch (e) {}
}, []); }, []);
...@@ -48,7 +50,7 @@ const UserProvider = ({ children }: Props) => { ...@@ -48,7 +50,7 @@ const UserProvider = ({ children }: Props) => {
if (res.code == "200") { if (res.code == "200") {
window.localStorage.setItem("token", res.result?.token || ""); window.localStorage.setItem("token", res.result?.token || "");
api.userInfo().then((res) => { api.userInfo().then((res) => {
setUserInfo(res.result || ''); setUserInfo(res.result || undefined);
}); });
} }
}); });
...@@ -57,7 +59,7 @@ const UserProvider = ({ children }: Props) => { ...@@ -57,7 +59,7 @@ const UserProvider = ({ children }: Props) => {
//登出 //登出
function logout() { function logout() {
localStorage.setItem("token", ""); localStorage.setItem("token", "");
setUserInfo(''); setUserInfo(undefined);
} }
return ( return (
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论