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