最近項(xiàng)目需要,存到本地多個值,看了下官方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失敗');})
//如何去除所有值
//這里需要注意點(diǎn)的就是map是個無序的集合,所以取出的值會出現(xiàn)順序問題,
//我舉得這個是官方API的問題,我是用了一種json的形式,因?yàn)橄旅嬲埱蟮臅r候直接
//用json就好了,如果其他小伙伴還有更好的辦法,請回復(fù)我,謝謝
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(()=>{
}