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