如何在本机,redux中保存/存储数据?并在之后调用它

时间:2017-04-18 11:49:04

标签: react-native redux

我正在开发一个反应本机项目,我希望保存我的数据,如名称或电子邮件地址,然后到达它。当然会有多个数据。我搜索了它,基本上第一个选项是AsyncStorage(https://facebook.github.io/react-native/docs/asyncstorage.html)。我理解这一点,但我没有得到如何存储多个名称或电子邮件..此外,我想使用redux存储,如果可能的话。我也搜索了它,但我找不到令人满意的方式来实现它。此外,还有redux-persist库。我认为这个库看起来最好,但我不确定我是否需要它。我无法决定开始和继续前进的方式。有任何建议或经验吗?保存后,如何调用数据?

2 个答案:

答案 0 :(得分:2)

redux-persist library非常出色,并且由React Native附带的AsyncStorage机制提供支持。该库允许您保存Redux商店的当前状态,并在下次启动应用程序时自动对其进行补充。

该库还允许您在重新水化时实现自定义逻辑,以便更好地控制过程。一般来说AsyncStorage不应该直接用于保存原始数据,而是在顶部有一个抽象层 - 如果你已经在使用Redux,Redux Persist是一个很好的抽象。

答案 1 :(得分:0)

我发现redux-storage Library更易于实现react-native redux-storage以保存redux状态。要使用反应原生的引擎,您需要使用redux-storage-engine-reactnativeasyncstorage

以下是我的代码

import { createStore, applyMiddleware, combineReducers } from 'redux';
import rootReducer from './reducers'; 
import logger from 'redux-logger';
import * as storage from 'redux-storage'

import createEngine from 'redux-storage-engine-reactnativeasyncstorage';
const engine = createEngine('my-save-key');

export default function configureStore() {
    const reducer = storage.reducer(rootReducer);

    const middleware = storage.createMiddleware(engine);

    const createStoreWithMiddleware = applyMiddleware(middleware)(createStore);
    const store = createStoreWithMiddleware(reducer, applyMiddleware(logger));

    const load = storage.createLoader(engine);
    load(store);


    return store;
}

希望现在也可以帮助别人。

由于