Closed
Description
Version used - "react-native-mmkv": "1.1.6"
Tried implementing in my project but throwing error, am I doing something wrong
import AsyncStorage from '@react-native-community/async-storage';
import { applyMiddleware, compose, createStore } from 'redux';
import { persistReducer, persistStore } from 'redux-persist';
import { MMKV } from 'react-native-mmkv';
import { Storage } from 'redux-persist';
import thunkMiddleware from 'redux-thunk';
import { appReducer } from './reducer';
const rootReducer = (state: any, action: any) => {
if (action.type === 'AppState/ClearCacheRdxConst') {
return appReducer(undefined, action);
}
return appReducer(state, action);
};
const enhancers = [
applyMiddleware(
thunkMiddleware,
// createLogger({
// collapsed: true,
// predicate: () => __DEV__,
// }),
),
];
// @ts-ignore
const composeEnhancers =
(__DEV__ &&
typeof window !== 'undefined' &&
window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__) ||
compose;
const enhancer = composeEnhancers(...enhancers);
// Unfortunately redux-persist expects Promises,
// so we have to wrap our sync calls with Promise resolvers/rejecters
export const storage: Storage = {
setItem: (key: string, value: string): Promise<boolean> => {
MMKV.set(key, value);
return Promise.resolve(true);
},
getItem: (key: string): Promise<string> => {
const value = MMKV.getString(key);
return Promise.resolve(value);
},
removeItem: (key: string): Promise<void> => {
MMKV.delete(key);
return Promise.resolve();
},
};
const persistConfig = {
key: 'root',
storage: storage,
};
const persistedReducer = persistReducer(persistConfig, rootReducer);
export const store = createStore(persistedReducer, undefined);
export const persistor = persistStore(store);
Error:
However in the android it is not even able to build:
Metadata
Metadata
Assignees
Labels
No labels