React-native-storage是在AsyncStorage之上封装的一个缓存操作插件库,刚开始接触这个也遇到了一些问题,在这里简单记录总结一下,碰到了就记下来,持续更新吧
1、安卓下storage的load和save不生效?
部分安卓下默认是不开放storage的处理权限的,因此为了安卓下能正常使用,可以在项目/android/app/src/main/AndroidManifest.xml文件中添加如下代码
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
2、storage去load空内容时逻辑异常?
我们都是storage的存取返回的都是一个promise对象,我们可以在then中去处理数据存取之后的逻辑,但是这里有一点需要注意的就是当读取数据失败时自动进入catch部分,这其中就包括找不到数据的情况,就是说当你把一个数据清空了再去load的时候就会进入catch部分,一开始我就是写到了then里面,一直出问题。。。
global.storage.load({
key: 'netLog'
}).then((logs) => {
console.log('历史数据存在的时候到这里:', logs)
}).catch((err) => {
console.log('历史数据为空的时候到这里')
});
3、React-native-storage存储格式
React-native-storage本身是key-value形式存储,但使用AsyncStorage时不同于localStorage的是,这里存储的value可以直接存储对象格式的。存取都不需要做额外的JSON到字符串之间的转换。