最近项目需要,存到本地多个值,看了下官方API,大概有那么5种方式,我这里只简单些出几样
单值得存储和取值
直接上代码
//如何存值
try {
AsyncStorage.setItem(
'username' ,
//'password',
tel,
//password,
(error)=>{
if (error){
alert('存值失败:',error);
}else{
//alert('存值成功!');
} catch (error){
alert('存储失败'+error);
}
//如何取值
AsyncStorage.getItem(
'username',
(error, result)=> {
if (error) {
//alert('取值失败1111:' + error);
} else{
alert(取值成功)
}
})
这里的问题是单值得存储有时候可能没办法满足我们的需求,所以涉及到了多值存储
直接上代码
//如何存多个值
AsyncStorage.multiSet(
[['username',tel],['password',password]]).then(()=>{
console.debug('本地存储多个KEY取出成功');
}).catch((errors)=>{
console.debug('本地存储多个KEY失败');})
//如何去除所有值
//这里需要注意点的就是map是个无序的集合,所以取出的值会出现顺序问题,
//我举得这个是官方API的问题,我是用了一种json的形式,因为下面请求的时候直接
//用json就好了,如果其他小伙伴还有更好的办法,请回复我,谢谢
AsyncStorage.getAllKeys((err,keys)=>{
AsyncStorage.multiGet(keys,(err,stores) =>{
if(err){
return;
}
stores.map((result,i,store)=>{
//let key =store[i][0];
//let value = store[i][1];
//取出账号和密码
username = '\"' + store[0][0] + '\"' + ':' + '\"' +store[0][1] + '\"';
//pwd = store[1][0] + ':' + store[1][1];
pwd = '\"' + store[1][0] + '\"' + ':' + '\"' +store[1][1] + '\"';
//console.debug('store'+JSON.stringify(username));
//console.debug(pwd);
//userJson = '{' + username +',' +pwd + '}' ;
//console.debug(userJson);
})
}).then(()=>{
}