import { useDispatch, useSelector } from 'react-redux' import { CLEAR_SESSIONKEY, SET_USERINFO, SET_TOKEN, SET_SESSIONKEY, CLEAR_USERINFO, CLEAR_TOKEN} from '@/constants/userInfo' import {DataParam, UserParam} from '@/reducers/userInfo' export default () => { const userInfo = useSelector((state:DataParam) => state.userInfo) as DataParam const dispatch = useDispatch() const setToken = (token: string) => { dispatch({type:SET_TOKEN, data:{token}}) } const setSessionKey = (sessionkey: string) => { dispatch({type:SET_SESSIONKEY, data:{sessionkey}}) } const setUserInfo = (userInfo: UserParam) => { dispatch({type:SET_USERINFO, data:{userInfo}}) } const removeUserInfo = () => { dispatch({type:CLEAR_USERINFO}) } const removeToken = () => { dispatch({type:CLEAR_TOKEN}) } const removeSessionKey = () => { dispatch({type:CLEAR_SESSIONKEY}) } return { setToken, setUserInfo, setSessionKey, removeUserInfo, removeToken, removeSessionKey, userInfo, //响应式数据返回 } }