store.ts
import { combineReducers, configureStore } from "@reduxjs/toolkit"
import {
persistReducer,
persistStore,
FLUSH,
REHYDRATE,
PAUSE,
PERSIST,
PURGE,
REGISTER
} from "redux-persist";
import storage from "redux-persist/lib/storage"
import userReducer from "./features/userSlice";
const persistConfig = {
key: "root",
version: 1,
storage
}
const rootReducer = combineReducers({
user: userReducer
})
const persistedReducer = persistReducer(persistConfig, rootReducer)
export const store = configureStore({
reducer: persistedReducer,
devTools: process.env.NODE_ENV !== "production",
middleware: (getDefaultMiddleware) =>
getDefaultMiddleware({
serializableCheck: {
ignoredActions: [FLUSH, REHYDRATE, PAUSE, PERSIST, PURGE, REGISTER],
}
})
})
export const persistor = persistStore(store)
export type RootState = ReturnType<typeof store.getState>
export type AppDispatch = typeof store.dispatch
main.tsx个
const queryClient = new QueryClient()
ReactDOM.createRoot(document.getElementById('root')!).render(
<BrowserRouter>
<QueryClientProvider client={queryClient}>
<Provider store={store}>
<PersistGate loading={null} persistor={persistor}>
<App />
</PersistGate>
</Provider>
</QueryClientProvider>
</BrowserRouter>,
)
slices/userSlice.ts个
import { TLoginUser } from "../../types"
import { PayloadAction, createSlice } from "@reduxjs/toolkit"
type TInitialState = {
user: TLoginUser | null
}
const initialState: TInitialState = {
user: null
}
export const userSlice = createSlice({
name: "user",
initialState,
reducers: {
login: (state, action: PayloadAction<TLoginUser>) => {
state.user = action.payload
},
logout: (state) => {
state.user = null
},
reset: (state) => {
state.user = null
}
}
})
export const { login, logout, reset } = userSlice.actions
export default userSlice.reducer
types/index.ts个
export type TLoginUser = {
user: {
userId: string
role: string
}
orders: string[]
basketItems: string[]
refreshToken: string
accessToken: string
}
当我重新运行应用程序并try 重置REDUX状态时,每当我刷新页面时,初始状态数据都无法清除,并且状态数据来自其他不正确的项目.图片显示了currentUser
个我不希望它存在的属性,因为我没有在项目中定义它的属性.请问在try 重置状态数据时如何清除数据?