我是React Native的新手,我正在创建一个应用,我需要在Android中将值存储在本地存储中,例如 SharedPref 。
例如:如果用户登录,则控件应转至控制板,否则应显示登录屏幕
提前谢谢
答案 0 :(得分:6)
有几种方法可以做到这一点。
对于大多数基本操作,您可以从react-native使用AsyncStorage,但还有其他选项,例如Realm和SQLite,它们是用于在设备上存储数据的库。
如果您使用Redux,也可以使用redux-persist。
答案 1 :(得分:1)
您无法在React-Native中使用LocalStorage
,您可以使用AsyncStorage代替。
编辑:您还可以使用redux之类的商店来处理此问题。
答案 2 :(得分:1)
不要使用AsyncStorage,因为Android上存在许多错误,并且RN团队似乎对修复它没有任何兴趣(像这样几年)。
简而言之:不要使用AsyncStorage
答案 3 :(得分:1)
对于任何仍在寻找它的人,RN async storage已被弃用。您可以使用:https://github.com/react-native-community/react-native-async-storage。
答案 4 :(得分:0)
AsyncStorage是存储一些可以使用的数据的最佳选择,如下例所示:
AsyncStorage.setItem('access_token', responseData.data.access_token);
这是我单独的组件,您可以在其中创建单独的函数以导入任何where示例:
export const isSignedIn = () => {
return new Promise((resolve, reject) => {
AsyncStorage.getItem(USER_KEY)
.then(res => {
if (res !== null) {
resolve(res);
} else {
resolve(false);
}
})
.catch(err => reject(err));
});
};
如何导入?
import { isSignedIn, url } from "./Auth";
isSignedIn()
.then(res => {
this.changeLoaderStatus();
if(res){
res; //this is your token
}
}
答案 5 :(得分:0)
您可以使用比异步存储更易于使用的sync storage:
import SyncStorage from 'sync-storage';
...
SyncStorage.set('foo', 'bar');
const result = SyncStorage.get('foo');
console.log(result); // 'bar'
答案 6 :(得分:0)
从react native文档中:
不推荐使用AsyncStorage。
建议使用react-native-async-storage
文档链接:https://facebook.github.io/react-native/docs/asyncstorage.html
希望你很清楚。
答案 7 :(得分:0)
根据官方doc AsyncStorage
已弃用,现在将使用@react-native-community/async-storage
因此,请按照以下步骤使用AsyncStorage
添加纱线@ react-native-community / async-storage
cd ios / && pod安装(仅适用于IOS)
存储数据
import { AsyncStorage } from 'react-native';
storeData = async () => {
try {
await AsyncStorage.setItem('@storage_Key', 'stored value')
} catch (e) {
// saving error
}
}
读取数据
getData = async () => {
try {
const value = await AsyncStorage.getItem('@storage_Key')
if(value !== null) {
// value previously stored
}
} catch(e) {
// error reading value
}
}
答案 8 :(得分:0)
使用过的AsyncStorage
并在react native中执行所有本地存储操作,例如get和set value