Skip to content

_reactNativeMmkv.MMKV.set is not a function #61

Closed
@shrmaky

Description

@shrmaky

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:

Screen Shot 2021-05-03 at 12 11 26 PM

However in the android it is not even able to build:

Screen Shot 2021-05-03 at 12 16 00 PM

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions