SyncStorage.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import {Alert} from 'react-native';
  2. import AsyncStorage from '@react-native-async-storage/async-storage';
  3. // https://react-native-async-storage.github.io/async-storage/docs/usage
  4. // https://blog.csdn.net/AnitaSun/article/details/115204134
  5. const set = async (key, value, obj = null) => {
  6. try {
  7. if (obj) {
  8. value = JSON.stringify(value);
  9. }
  10. await AsyncStorage.setItem(key, value);
  11. } catch (e) {
  12. // saving error
  13. console.log('设置内部存储失败', e);
  14. Alert.alert('设置内部存储失败');
  15. }
  16. };
  17. const get = async (key, obj = null) => {
  18. try {
  19. const value = await AsyncStorage.getItem(key);
  20. if (obj) {
  21. return value != null ? JSON.parse(value) : null;
  22. }
  23. return value;
  24. } catch (e) {
  25. // error reading value
  26. console.log('获取内部存储失败', e);
  27. Alert.alert('获取内部存储失败');
  28. }
  29. };
  30. const remove = async (key) => {
  31. try {
  32. await AsyncStorage.removeItem(key);
  33. } catch (e) {
  34. // remove error
  35. console.log('删除内部存储失败', e);
  36. Alert.alert('删除内部存储失败');
  37. }
  38. };
  39. const clear = async (key) => {
  40. try {
  41. await AsyncStorage.clear();
  42. } catch (e) {
  43. // remove error
  44. console.log('清空内部存储失败', e);
  45. Alert.alert('清空内部存储失败');
  46. }
  47. };
  48. export default {
  49. clear,
  50. remove,
  51. get,
  52. set,
  53. };