React-Native:保存用户偏好

Posted

技术标签:

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

原生开发者,

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

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

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

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

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

非常感谢

【问题讨论】:

你可以使用AsyncStorage facebook.github.io/react-native/docs/asyncstorage.html 但请注意,AsyncStorage 在最新版本的 React Native 上,当远程调试打开(android)时,它会使应用程序挂起。阅读本期github.com/facebook/react-native/issues/15476 【参考方案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 得到了很好的支持

以上是关于React-Native:保存用户偏好的主要内容,如果未能解决你的问题,请参考以下文章

文件保存意图,如共享意图 Android/iOS react-native

React-native:如何自动保存 webview 当前网页?

React-Native:无法导航到第二个屏幕

离线时发布(React-Native)

react-native 异步存储不保存,也没有错误

使用 redux 在 react-native 应用程序中保存访问令牌的最佳实践是啥?