[ 卡卡 DAY 21 ] - React Native 资料手机存起来 AsyncStorage

如果怕手机关掉东西就不见了
来使用 AsyncStorage 将状态存到手机也就是 local storage 里吧!

AsyncStorage

一个简单、非同步、持久化的 Key-Value 储存系统,它对於 App 来说是全域性的。可用来代替 LocalStorage。

AsyncStorage 存储的位置根据系统的不同而有所差异。
iOS 中的存储类似於 NSUserDefault,通过 plist 文件存放在设备中。 Android 中会存储在 RocksDB 或者 SQLite 中,取决於你使用哪个。

PS.Android 上有大小限制,最大只能存 6MB。如果需要的话,可以覆盖这个限制,参考这个doc

  1. 安装react-native-async-storage
npm install @react-native-async-storage/async-storage
cd ios
pod install
  1. 引入
import AsyncStorage from "@react-native-async-storage/async-storage";
  1. AsyncStorage 的资料只要是由以下两个方法来做处理
  • setItem 储存资料(AsyncStorage.setItem('key',value))
  • getItem 取得资料( AsyncStorage.getItem('key'))

存起来存在 AsyncStorage

    const saveData = (value) => {
        try {
            AsyncStorage.setItem('Data_KEY', value);
        } catch (e) {
            console.log("error", e);
        }
    };

取出来存在一个 state 里

    const [dataItem,setDataItem]=useState(null)
    const getData = async () => {
        try {
            const item = await AsyncStorage.getItem('Data_KEY');
            const itemParse = JSON.parse(item);
            setDataItem(itemParse)
        } catch (e) {
            console.log("error", e);
        }
    };

这样简单的操作利用 key 的存取直接在需要的地方取用就完成了唷!!

结论

当然也可以做简单的封装,可以参考这两个唷!
封装参考 A
封装参考 B

最後提供 AsyncStorage API

Day 21 done! 请多多指教 ~


<<:  【Day25】[演算法]-合并排序法Merge Sort

>>:  DAY 24- 凭证实察 Certificate

Day 24-请问我可以 taint 你的文章强迫你重写吗?state manipulation 之六:terraform taint

这几天看了一些铁人赛的文章,看到一些很不错的文章,当然也看到很多不知所云的内容 观察整体趋势是劣币驱...

除此之外,还有什麽吗?

这一天原本想贴一贴学员心得,所以完全没有准备什麽内容。 学员毕业心得,没有强制要每个离开的学员写。...

Day23 - 在 Next.js 中如何共用 Layout

前言 在前一篇文章中,我们了解了怎麽使用 _app.tsx 撰写共用 layout 的 compon...

[Tableau Public] day 22:台湾姓氏分布-修改原始资料

昨天计画要做以下三个内容: 1.所有栏位的位置(保留中文的栏位名称即可) 2.日期资料格式(因为资料...

mostly:functional 终章:Monad 的实体

可是我的心,比整个宇宙,还要大了那麽一点点。 -- 费尔南多‧佩索亚, 诗选:A Little L...