TinyBase logoTinyBase

createReactNativeMmkvPersister

The createReactNativeMmkvPersister function creates a ReactNativeMmkvPersister object that can persist the Store to a local react-native-mmkv storage.

createReactNativeMmkvPersister(
  store: Store | MergeableStore,
  storage: MMKV,
  storageName?: string,
  onIgnoredError?: (error: any) => void,
): ReactNativeMmkvPersister
TypeDescription
storeStore | MergeableStore

The Store or MergeableStore to persist.

storageMMKV

The MMKV storage instance.

storageName?string

The unique key to identify the storage location.

onIgnoredError?(error: any) => void

An optional handler for the errors that the Persister would otherwise ignore when trying to save or load data. This is suitable for debugging persistence issues in a development environment.

returnsReactNativeMmkvPersister

A reference to the new ReactNativeMmkvPersister object.

A ReactNativeMmkvPersister supports both regular Store and MergeableStore objects.

As well as providing a reference to the Store to persist, you must provide a storage parameter which identifies the MMKV storage instance.

The third argument is a storageName string that configures which key to use for the storage key.

Example

This example creates a ReactNativeMmkvPersister object and persists the Store to a MMKV storage instance as a JSON serialization into the my_tinybase key. It makes a change to the storage directly and then reloads it back into the Store.

import {MMKV} from 'react-native-mmkv';
import {createStore} from 'tinybase';
import {createReactNativeMmkvPersister} from 'tinybase/persisters/persister-react-native-mmkv';

const storage = new MMKV();
const store = createStore().setTables({pets: {fido: {species: 'dog'}}});
const persister = createReactNativeMmkvPersister(
  store,
  storage,
  'my_tinybase',
);

await persister.save();
// Store will be saved to the MMKV storage.

console.log(storage.getString('my_tinybase'));
// -> '[{"pets":{"fido":{"species":"dog"}}},{}]'

await persister.destroy();
storage.delete('my_tinybase');

Since

v6.5.0