react-native-storage安卓机上load无法使用的问题

富昕
2023-12-01

localStorage.js:

import {AsyncStorage} from 'react-native';
import Storage from 'react-native-storage';
var storage = new Storage({
  // 最大容量,默认值1000条数据循环存储
  size: 1000,

  // 存储引擎:对于RN使用AsyncStorage,对于web使用window.localStorage
  // 如果不指定则数据只会保存在内存中,重启后即丢失
  storageBackend: AsyncStorage,

  // 数据过期时间,默认一整天(1000 * 3600 * 24 毫秒),设为null则永不过期
  defaultExpires:null,

  // 读写时在内存中缓存数据。默认启用。
  enableCache: true,

  // 如果storage中没有相应数据,或数据已过期,
  // 则会调用相应的sync方法,无缝返回最新数据。
  // sync方法的具体说明会在后文提到
  // 你可以在构造函数这里就写好sync的方法
  // 或是在任何时候,直接对storage.sync进行赋值修改
  // 或是写到另一个文件里,这里require引入
  })
export default storage

在别的页面中使用localStorage.js的文件先引入:

index.js:

import localStorage from '../tools/localStorage';
var myData = [1,2,3,4,5]

写入缓存:
localStorage.save({
    key:"hotWords",
    id:1000,
    data: myData,
})


读取缓存:
localStorage.load({
    key:"hotWords",
    id:1000,
})
.then(res=>{
    console.log(res);  //res = myData;
})


清空缓存
localStorage.remove({
   key:'hotWords',
   id:1000,
});

但是有时候会有在android上localStorage.load() 无法生效的问题,如果你找了一圈还没有找到问题所在,说明这可能并不是你的代码的问题,往往是因为这个插件本身的缺陷造成的

在 项目文件/android/app/src/main/AndroidManifest.xml中添加一下权限代码:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

 

 类似资料: