Database 如何使用react native在本地存储中存储数据?

Database 如何使用react native在本地存储中存储数据?,database,react-native,redux,Database,React Native,Redux,我想用react-native和redux创建带有注释的待办事项列表。我有复杂的逻辑将笔记和待办事项存储在不同的位置,不同的状态。我应该如何将所有关系和所有数据存储在Android/IOS设备的本地存储中 但是,请注意异步存储限制,如加密和大小 您可以这样使用它: import AsyncStorage from '@react-native-community/async-storage'; export default { setItem: async (key, value) =&g

我想用react-native和redux创建带有注释的待办事项列表。我有复杂的逻辑将笔记和待办事项存储在不同的位置,不同的状态。我应该如何将所有关系和所有数据存储在Android/IOS设备的本地存储中

但是,请注意异步存储限制,如加密和大小

您可以这样使用它:

import AsyncStorage from '@react-native-community/async-storage';

export default {
  setItem: async (key, value) => {
    try {
      await AsyncStorage.setItem(key, JSON.stringify(value));
    } catch (error) {}
  },
  getItem: async (key) => {
    try {
      const item = await AsyncStorage.getItem(key);

      return JSON.parse(item);
    } catch (error) {}
  },
  removeItem: async (key) => {
    try {
      await AsyncStorage.removeItem(key);
    } catch (error) {}
  },
  updateItem: async (key, value) => {
    try {
      const item = await AsyncStorage.getItem(key);
      const result = {...JSON.parse(item), ...value};

      await AsyncStorage.setItem(key, JSON.stringify(result));
    } catch (error) {}
  },
};

异步存储只能存储字符串数据,因此为了存储对象数据,需要首先对其进行序列化。对于可以序列化为JSON的数据,可以在保存数据时使用JSON.stringify(),在加载数据时使用JSON.parse()

import AsyncStorage from '@react-native-community/async-storage';
存储字符串值

const storeData = async (value) => {
  try {
    await AsyncStorage.setItem('@storage_Key', value)
  } catch (e) {
    // saving error
  }
}
排序对象值

const storeData = async (value) => {
 try {
    const jsonValue = JSON.stringify(value)
    await AsyncStorage.setItem('@storage_Key', jsonValue)
  } catch (e) {
    // saving error
  }
}
const getData = async () => {
  try {
    const jsonValue = await AsyncStorage.getItem('@storage_Key')
    return jsonValue != null ? JSON.parse(jsonValue) : null;
  } catch(e) {
    // error reading value
  }
}
读取字符串值

const getData = async () => {
  try {
    const value = await AsyncStorage.getItem('@storage_Key')
    if(value !== null) {
      // value previously stored
   }
  } catch(e) {
    // error reading value
  }
}
读取对象值

const storeData = async (value) => {
 try {
    const jsonValue = JSON.stringify(value)
    await AsyncStorage.setItem('@storage_Key', jsonValue)
  } catch (e) {
    // saving error
  }
}
const getData = async () => {
  try {
    const jsonValue = await AsyncStorage.getItem('@storage_Key')
    return jsonValue != null ? JSON.parse(jsonValue) : null;
  } catch(e) {
    // error reading value
  }
}

应避免将所有数据存储在本地存储器中。它有一些内存限制!