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
}
}
- 弃用文档:https://reactnative.dev/docs/asyncstorage
- 异步存储文档:https://react-native-async-storage.github.io/async-storage/docs/install/
- 考虑其他选项:https://reactnative.directory/?search=storage
旧答案
有很多选择,但您最常用的是内置的 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
本地开发人员,
我确实搜索了很多,但找不到适合我需要的东西。
我是 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
}
}
- 弃用文档:https://reactnative.dev/docs/asyncstorage
- 异步存储文档:https://react-native-async-storage.github.io/async-storage/docs/install/
- 考虑其他选项:https://reactnative.directory/?search=storage
旧答案
有很多选择,但您最常用的是内置的 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