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到字符串之間的轉換。