- 安装:
npm install react-native-storage --save -
引入:import Storage from 'react-native-storage';
- 初始化:
import { AsyncStorage } from 'react-native'; var storage = new Storage({ // 最大容量,默认值1000条数据循环存储 size: 1000, // 存储引擎:对于RN使用AsyncStorage,对于web使用window.localStorage // 如果不指定则数据只会保存在内存中,重启后即丢失 storageBackend: AsyncStorage, // 数据过期时间,默认一整天(1000 * 3600 * 24 毫秒),设为null则永不过期 defaultExpires: 1000 * 3600 * 24, // 读写时在内存中缓存数据。默认启用。 enableCache: true, // 如果storage中没有相应数据,或数据已过期, // 则会调用相应的sync方法,无缝返回最新数据。 // sync方法的具体说明会在后文提到 // 你可以在构造函数这里就写好sync的方法 // 或是写到另一个文件里,这里require引入 // 或是在任何时候,直接对storage.sync进行赋值修改 sync: require('./sync') // 这个sync文件是要你自己写的 })
global.storage = storage; // 这样,在此**之后**的任意位置即可以直接调用storage // 注意:全局变量一定是先声明,后使用 // 如果你在某处调用storage报错未定义 // 请检查global.storage = storage语句是否确实已经执行过了
4. 保存和读取:// 使用key来保存数据。这些数据一般是全局独有的,常常需要调用的。
保存:
storage.save({ key: 'loginState', // 注意:请不要在key中使用_下划线符号! data: { from: 'some other site', userid: 'some userid', token: 'some token' },
读取:
//load 读取 storage.load({ key: 'user', id: '1001' }).then(ret => { // 如果找到数据,则在then方法中返回 console.log(ret.userid); }).catch(err => { // 如果没有找到数据且没有sync方法, // 或者有其他异常,则在catch中返回 console.warn(err.message); switch (err.name) { case 'NotFoundError': // TODO; break; case 'ExpiredError': // TODO break; } })
批量读取数据:
storage.getBatchData([ { key: 'loginState' }, { key: 'checkPoint', syncInBackground: false }, { key: 'balance' }, { key: 'user', id: '1009' } ]) .then(results => { results.forEach( result => { console.log(result); }) })
react-native中的storage存储
猜你喜欢
转载自blog.csdn.net/khadijiah/article/details/102784155
今日推荐
周排行