react-native-mmkv: Storage is unavailable
Hello, I use mmkv + zustand, and I have such a flow
- user enters PIN code
- I init encrypted store with that PIN
- I start using
useEncryptedStoreinside the app with zustand
After a while started seeing such an error in logs [zustand persist middleware] Unable to update item '@encrypted', the given storage is currently unavailable..
I tried to re-install the app, but that didn’t help.
Here is the code
// MMKV.ts
let encryptedStorage: MMKV | undefined;
const initEncryptedStorage = (encryptionKey: string) => {
encryptedStorage = new MMKV({
id: ENCRYPTED_ID,
encryptionKey,
});
if (__DEV__) {
initializeMMKVFlipper({ encryptedStorage, regularStorage });
}
};
//Auth.tsx
const handleEnterPIN = (pinCode: string) => {
initEncryptedStorage(pinCode);
navigate(PATH.MAIN_SCREEN);
}
//encryptedStore.ts
export const useStoreEncrypted = create<EncryptedInitialStateModel & EncryptedStoreModel>(
persist({
...
}, {
name: ENCRYPTED_ID,
getStorage: () => mmkvToZustandStorage(encryptedStorage),
},
),
);
//Main.tsx
const user = useStoreEncrypted((state) => state.user);
const setUser = useStoreEncrypted((state) => state.setUser);
// on setUser call I get [zustand persist middleware] Unable to update item '@encrypted', the given storage is currently unavailable.
About this issue
- Original URL
- State: closed
- Created 2 years ago
- Comments: 19 (8 by maintainers)
thanks, otherwise it’s just impossible for me to fix it