React-Native:保存用户偏好

React-Native: save user preferences

本地开发人员,

我确实搜索了很多,但找不到适合我需要的东西。

我是 React Native 的新手,有一个问题。 我想知道如何保存我的应用程序的用户偏好。

例如,我在屏幕上显示可关闭的徽章 -> 用户关闭它 -> 我如何保存此决定以便徽章不会再次出现在每次启动时?

我考虑编写一个 .json 文件,其中定义了所有首选项并在每次启动时读取它。

这是一种常见的实现方式还是有其他解决方案。

非常感谢

2022 年 2 月更新的答案

React native,正式弃用其内置的用法AsyncStorage。最新的解决方案是安装它的社区包。

# Install via NPM
npm install --save @react-native-async-storage/async-storage

# ...or install via YARN
yarn add @react-native-async-storage/async-storage

# ...or install via EXPO
expo install @react-native-async-storage/async-storage

实现是这样的

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

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


const getData = async () => {
  try {
    const value = await AsyncStorage.getItem(storeKey)
    if(value !== null) {
      // value previously stored
    }
  } catch(e) {
    // error reading value
  }
}

旧答案

有很多选择,但您最常用的是内置的 React Native AsyncStorage

示例代码

import { AsyncStorage } from "react-native";
const storeKey = 'myPreference';
storeData = async () => {
  try {
    await AsyncStorage.setItem(storeKey, 'I like to save it.');
  } catch (error) {
    // Error saving data
  }
}

retrieveData = async () => {
  try {
    const value = await AsyncStorage.getItem(storeKey);
    if (value !== null) {
      // We have data!!
      console.log(value);
    }
   } catch (error) {
     // Error retrieving data
   }
}

https://facebook.github.io/react-native/docs/asyncstorage.html

阅读更多内容

或者您可以重新考虑第 3 方库,例如:

https://github.com/kevinresol/react-native-default-preference

https://github.com/mCodex/react-native-sensitive-info