Open springerjanek opened 1 year ago
import { configureStore } from '@reduxjs/toolkit' const createDebugger = require('redux-flipper').default import AsyncStorage from '@react-native-async-storage/async-storage' // import AsyncStorage from '@react-native-community/async-storage' import { persistReducer, persistStore } from 'redux-persist'
import home from '@/store/models/home.slice' import category from '@/store/models/category.slice' import expireReducer from 'redux-persist-expire'
const persistConfig = { key: 'root', version: 1, storage: AsyncStorage, whitelist: ['myCategory'], // 如 ms(毫秒)、s(秒)、m(分钟)、h(小时)和 d(天) // expireTime: 1000 * 5, transforms: [ expireReducer('category', { expireSeconds: 120, expiredState: { myCategory: [], }, }), ], }
const store = configureStore({ reducer: { home, ...{ category: persistReducer(persistConfig, category), }, }, middleware: (getDefaultMiddleware) => DEV ? getDefaultMiddleware({ serializableCheck: false }).concat( createDebugger() ) : getDefaultMiddleware({ serializableCheck: false, }), }) export const persistor = persistStore(store)
export type RootState = ReturnType
export default store
NOT WORK.
It works very well with redux toolkit. Here is the code sample which works.
type AuthState = {
auth: {
id: string | null
}
}
const persistConfig = {
key: 'root',
version: 1,
storage,
transforms: [
expireReducer('auth', {
expireSeconds: 60,
autoExpire: true,
}),
],
}
The auth should be resetted in 5 seconds and it doesn't happen.