如何在本机

时间:2017-03-22 08:00:25

标签: android react-native

如何 以反复原生的方式存储/保存数据 就像我们在android中使用共享首选项一样,有任何反应原生的解决方案。我是新手反应-nactive。

  

请添加示例

4 个答案:

答案 0 :(得分:10)

您可以使用React Native AsyncStorage将数据存储到设备的本地存储中。

import { AsyncStorage } from 'react-native'

使用此功能保存数据

AsyncStorage.setItem('key', 'value');

AsyncStorage仅接受字符串的值,因此在将值设置为AsyncStorage

之前,您可能需要使用stringify()

要检索数据使用

AsyncStorage.getItem('your key'); 

示例代码:

const KEY = 'USER_DATA'

let keyValue = { name: yogi }

AsyncStorage.setItem(KEY,keyValue);

AsyncStorage.getItem(KEY).then(asyncStorageRes => {
    console.log(JSON.parse(asyncStorageRes))
});

答案 1 :(得分:5)

React Native也有共享首选项,这是npm命令来获取它:npm install react-native-shared-preferences --save。您可以在此处获取完整的详细信息(如何在反应项目中进行设置):https://www.npmjs.com/package/react-native-shared-preferences

答案 2 :(得分:1)

使用了异步存储类来以React native的方式存储和检索数据

答案 3 :(得分:-1)

您可以使用比异步存储更易于使用的react-native-easy-app。 这个库很棒,它使用异步存储来异步保存数据,并使用内存来同步立即加载和保存数据,因此我们将异步保存到内存中并在应用程序同步中使用。

export const RNStorage = {// RNStorage : custom data store object
     token: undefined, // string type
     isShow: undefined, // bool type
     userInfo: undefined, // object type
};


import { XStorage } from 'react-native-easy-app';
import { AsyncStorage } from 'react-native';

XStorage.initStorage(RNStorage, AsyncStorage, () => {
    ... // RNStorage 【Property access code snippet】
});

// OR ---------------------------------------------------------------

const result = await XStorage.initStorageSync(RNStorage, AsyncStorage);
if (result) {
    ... // RNStorage 【Property access code snippet】
}


// RNStorage 【Property access code snippet】
// From now on, you can write or read the variables in RNStorage synchronously

console.log(RNStorage.isShow);
// equal to [console.log(await AsyncStorage.getItem('isShow'))] 

RNStorage.token = 'TOKEN1343DN23IDD3PJ2DBF3==';
// equal to [ await AsyncStorage.setItem('token',TOKEN1343DN23IDD3PJ2DBF3==') ]  

RNStorage.userInfo = {name: 'rufeng', age: 30};
// equal to [ await AsyncStorage.setItem('userInfo',JSON.stringify({ name:'rufeng', age:30})) ]