我需要在会话之间存储一些用户数据,例如设置,登录,令牌等。尝试了异步存储,但是当我重新启动应用程序时,其中的数据将被删除。找到了一些引用钥匙串或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);
}
答案 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