提交 c8482076 作者: 翁进城

用户provider优化

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