redux-persist-fs-storage
Version:
Redux-Persist storage engine for React Native file system
64 lines (42 loc) • 1.93 kB
Markdown
# Redux Persist FS Storage
> [Redux Persist](https://github.com/rt2zz/redux-persist/) storage engine for React Native file system
Inspired by [redux-persist-filesystem-storage](https://github.com/robwalkerco/redux-persist-filesystem-storage), this module works as adapter between [react-native-fs](https://github.com/itinance/react-native-fs) and [redux-persist](https://github.com/rt2zz/redux-persist/).
### Install
```
yarn add react-native-fs redux-persist-fs-storage
```
This will install `react-native-fs` as dependency. So make sure to link it natively:
```
react-native link react-native-fs
```
See `react-native-fs`'s [documentation](https://github.com/itinance/react-native-fs) for details.
### Usage
Both Redux Persist v4 and v5 are supported.
Redux Persist v5:
```js
import { persistStore, persistReducer } from 'redux-persist';
import FSStorage from 'redux-persist-fs-storage';
const persistConfig = {
key: 'root',
keyPrefix: '', // the redux-persist default is `persist:` which doesn't work with some file systems
storage: FSStorage(),
};
const persistedReducer = persistReducer(persistConfig, reducer);
const store = createStore(persistedReducer);
const persistor = persistStore(store);
```
Redux Persist v4:
```js
import { persistStore } from 'redux-persist';
import FSStorage from 'redux-persist-fs-storage';
const persistor = persistStore(store, { storage: FSStorage() });
```
The default storage location is a folder called `reduxPersist` in the document directory for your app on the device. You can specify folder for persistor:
```js
import { persistStore } from 'redux-persist';
import FSStorage, { CacheDir } from 'redux-persist-fs-storage';
const cachePersistor = persistStore(store, {
storage: FSStorage(CacheDir, 'myApp'),
});
```
This will create `myApp` folder in cache storage for iOS and Android devices. You may create multiple persistors on different directories.