【问题标题】:React-Native: save user preferencesReact-Native:保存用户偏好
【发布时间】:2019-01-17 06:29:10
【问题描述】:

原生开发者,

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

我是新来的反应原生并有一个问题。 我想知道如何保存我的应用的用户偏好。

例如,我在我的屏幕上显示一个可关闭的徽章 -> 用户将其关闭 -> 我如何保存此决定以使该徽章不会在每次开始时再次出现?

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

这是实现它的常用方法还是有其他解决方案。

非常感谢

【问题讨论】:

标签: javascript react-native settings application-settings


【解决方案1】:

有很多选择,但最常见的可以使用 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

【讨论】:

  • 关键“TASKS”从何而来?它似乎与“@MySuperStore:key”无关。虽然我不熟悉 '@MySuperStore:key' 语法。
  • 啊,我的错,它应该是同一个键。我更新了答案以获得更好的一致性。谢谢指出!
  • React Native 的内置 AsyncStorage 现在根据官方文档已被弃用,但它的社区分支 @react-native-async-storage/async-storage 得到了很好的支持
猜你喜欢
  • 1970-01-01
  • 2011-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-01
  • 2010-11-07
  • 1970-01-01
  • 2023-03-11
相关资源
最近更新 更多