会话之间的React-native存储数据

时间:2015-11-09 15:35:57

标签: android ios storage user-input react-native

我需要在会话之间存储一些用户数据,例如设置,登录,令牌等。尝试了异步存储,但是当我重新启动应用程序时,其中的数据将被删除。找到了一些引用钥匙串或NSUserDefaults的模块,但我不知道哪个模块和任何模块都有用。
主要功能是即使应用程序被杀死并重新启动后,我也可以获取该数据。主要是在iOS上,但如果它也在Andorid上,那就太棒了 有人有过一些经验吗?

修改
我尝试使用asyncstorage。但是当你杀死并重启应用程序时,它没有做任何事情。
我的存储数据代码:

 AsyncStorage.setItem("prefix", responseData['prefix'])
 AsyncStorage.setItem("api_token", responseData['api_token'])

检索数据:

async _checkAutoLogin(){ 
    var prefix;
    var token;
    try { 
       prefix = await AsyncStorage.getItem("prefix");
       token = await AsyncStorage.getItem("api_token"); 
} catch (error) { 
      AlertIOS.alert('AsyncStorage error: ' + error.message); 
    } 

4 个答案:

答案 0 :(得分:9)

AsyncStorage应将您的数据保存到设备,以便您可以访问它,无论您的应用程序先前是否已发送到后台或是否已冷启动。如果您尝试使用await关键字,我认为您需要执行一些额外的设置才能使其运行。 Here's a good article让你顺其自然。

此外,根据您打算使用AsyncStorage的程度,React Native网站会说:

  

建议您在AsyncStorage之上使用抽象而不是AsyncStorage直接用于除了轻量级用途以外的任何操作,因为它全局运行。

我已经编写了一个名为react-native-simple-store的小包装器,它只包含AsyncStorage并公开了一个简约API,但默认情况下为JSON.stringifying和JSON.parsing提供了更复杂的值,所以你不需要不用担心。

或者,如果您最终需要更多本地数据库there are other modules for that

希望有所帮助!

答案 1 :(得分:0)

https://facebook.github.io/react-native/docs/asyncstorage.html#content可能会做到这一点。它说它的持久存储可能意味着你正在寻找的质量。

答案 2 :(得分:0)

即使在重新启动应用后,这仍然有效:

  _login:function(token){
    AsyncStorage.setItem('ApiToken',token,
      () => this.setState({isLoggedIn:true}),
      (error) => console.log(error)
    );
  },

答案 3 :(得分:0)

还有Rem Native的Realm,它为您提供了一个完整的本地数据库:https://realm.io