/**
* @overview A minimalistic wrapper around React Native's AsyncStorage.
* @license MIT
*/
import { AsyncStorage } from 'react-native';
import merge from 'lodash';
const store = {
/**
* Get a one or more value for a key or array of keys from AsyncStorage
* @param {String|Array} key A key or array of keys
* @return {Promise}
*/
get(key) {
if(!Array.isArray(key)) {
return AsyncStorage.getItem(key).then(value => {
return JSON.parse(value);
});
} else {
return AsyncStorage.multiGet(key).then(values => {
return values.map(value => {
return JSON.parse(value[1]);
});
});
}
},
/**
* Save a key value pair or a series of key value pairs to AsyncStorage.
* @param {String|Array} key The key or an array of key/value pairs
* @param {Any} value The value to save
* @return {Promise}
*/
save(key, value) {
if(!Array.isArray(key)) {
return AsyncStorage.setItem(key, JSON.stringify(value));
} else {
var pairs = key.map(function(pair) {
return [pair[0], JSON.stringify(pair[1])];
});
return AsyncStorage.multiSet(pairs);
}
},
/**
* Updates the value in the store for a given key in AsyncStorage. If the value is a string it will be replaced. If the value is an object it will be deep merged.
* @param {String} key The key
* @param {Value} value The value to update with
* @return {Promise}
*/
update(key, value) {
return store.get(key).then(item => {
value = typeof value === 'string' ? value : merge({}, item, value);
return AsyncStorage.setItem(key, JSON.stringify(value));
});
},
/**
* Delete the value for a given key in AsyncStorage.
* @param {String|Array} key The key or an array of keys to be deleted
* @return {Promise}
*/
delete(key) {
if (Array.isArray(key)) {
return AsyncStorage.multiRemove(key);
} else {
return AsyncStorage.removeItem(key);
}
},
/**
* Get all keys in AsyncStorage.
* @return {Promise} A promise which when it resolves gets passed the saved keys in AsyncStorage.
*/
keys() {
return AsyncStorage.getAllKeys();
}
};
export default store ;
然后你需要的地方import store 进来就好了。
使用方法
store.save(key,value)
.then(()=>{store.get(key)})
.then(()=>{store.delete(key)})
.catch(error()=>{console.log(error)})
注意在调用时请使用 ansyc await 0
0
相关文章
在React Native中安全且正确地获取与使用认证Token
在 React Native 中正确异步获取与使用认证令牌
React Native 高性能图片缩放查看器:手写原生方案实现流畅大图缩放
React Native 高性能图片缩放查看器:手写原生手势解决方案
React Native如何用javascript构建原生应用【教程】
相关标签:
本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门AI工具
相关专题
2026年最新赚钱平台入口汇总,涵盖任务众包、内容创作、电商运营、技能变现等多类正规渠道,助你轻松开启副业增收之路。阅读专题下面的文章了解更多详细内容。
32
2026.01.31
想找真正免费又无套路的漫画App?本合集精选多款永久免费、资源丰富、无广告干扰的优质漫画应用,涵盖国漫、日漫、韩漫及经典老番,满足各类阅读需求。阅读专题下面的文章了解更多详细内容。
29
2026.01.31
想找免费又资源丰富的漫画网站?本合集精选2025-2026年热门平台,涵盖国漫、日漫、韩漫等多类型作品,支持高清流畅阅读与离线缓存。阅读专题下面的文章了解更多详细内容。
6
2026.01.31
本合集详细介绍PHP运行环境的搭建与配置方法,涵盖Windows、Linux及Mac系统下的安装步骤、常见问题及解决方案。阅读专题下面的文章了解更多详细内容。
0
2026.01.31
本合集详细讲解PHP环境变量的设置方法,涵盖Windows、Linux及常见服务器环境配置技巧,助你快速掌握环境变量的正确配置。阅读专题下面的文章了解更多详细内容。
0
2026.01.31
热门下载
精品课程
共17课时 | 3.4万人学习
共21课时 | 4.7万人学习
共74课时 | 18.8万人学习
最新文章




