ReactNative的多值存储

最近项目需要,存到本地多个值,看了下官方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(()=>{
}

你可能感兴趣的:(ReactNative的多值存储)