fix: 登录/登出时清除 React Query 缓存,修复切换用户页面不刷新
This commit is contained in:
@@ -7,7 +7,7 @@ import ErrorBoundary from './components/ErrorBoundary'
|
||||
import { ConfirmProvider } from './hooks/useConfirm'
|
||||
import './index.css'
|
||||
|
||||
const queryClient = new QueryClient({
|
||||
export const queryClient = new QueryClient({
|
||||
defaultOptions: {
|
||||
queries: {
|
||||
staleTime: 1000 * 60 * 5,
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { create } from 'zustand'
|
||||
import { persist } from 'zustand/middleware'
|
||||
import { queryClient } from '../main'
|
||||
|
||||
interface User {
|
||||
id: string
|
||||
@@ -26,11 +27,15 @@ export const useAuthStore = create<AuthState>()(
|
||||
accessToken: null,
|
||||
refreshToken: null,
|
||||
isAuthenticated: false,
|
||||
setAuth: (user, accessToken, refreshToken) =>
|
||||
set({ user, accessToken, refreshToken, isAuthenticated: true }),
|
||||
setAuth: (user, accessToken, refreshToken) => {
|
||||
queryClient.clear()
|
||||
set({ user, accessToken, refreshToken, isAuthenticated: true })
|
||||
},
|
||||
updateToken: (accessToken) => set({ accessToken }),
|
||||
logout: () =>
|
||||
set({ user: null, accessToken: null, refreshToken: null, isAuthenticated: false }),
|
||||
logout: () => {
|
||||
queryClient.clear()
|
||||
set({ user: null, accessToken: null, refreshToken: null, isAuthenticated: false })
|
||||
},
|
||||
}),
|
||||
{ name: 'auth-storage' },
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user