Android React Native中具有AsyncStorage的GetItem不工作
我是react native的新手,当我试图从异步存储中获取数据时,在索引1处获取绑定值为null。下面是我的代码react native中的存储Android React Native中具有AsyncStorage的GetItem不工作,android,react-native,mobile,asyncstorage,Android,React Native,Mobile,Asyncstorage,我是react native的新手,当我试图从异步存储中获取数据时,在索引1处获取绑定值为null。下面是我的代码react native中的存储 Alert.alert( 'Info', 'React AsyncStorage', [ {text: 'Get Data',onPress: () => this.getValue('name'),}, {text: 'Save Data', on
Alert.alert(
'Info',
'React AsyncStorage',
[
{text: 'Get Data',onPress: () => this.getValue('name'),},
{text: 'Save Data', onPress: () => this.saveValue('name', 'abc'),}
],
{cancelable: false},
);
async saveValue(key:String, value:bool) {
AsyncStorage.setItem(key, value);
Alert.alert('Data', 'saving');
}
async getValue(key) {
// try {
// await AsyncStorage.getItem(Constant.SHOW_INTRO).then((value) =>
// console.log(`AsyncStorage GET for Constant.SHOW_INTRO: "${value}"`));
// } catch (error) {
// Alert.alert('Error', 'Error retrieving data');
// }
try {
const value = await AsyncStorage.getItem(key)
console.log(`AsyncStorage GET for "${key}": "${value}"`);
} catch (error) {
Alert.alert('Error', 'Error retrieving data');
}
}
请帮助。试着这样做:
async getValue(key){
try {
const value = await AsyncStorage.getItem(key)
console.log(`AsyncStorage GET for "${key}": "${value}"`);
} catch (error) {
Alert.alert('Error', 'Error to retrieve data');
}
}
您可以使用以下格式:
setData = (value) => {
// if value is an Object use this: value = JSON.stringify(value)
// if value is a number use this: value = value.toString()
AsyncStorage.setItem('myKey', value, () => {
console.warn('Done!')
})
}
getData = () => {
AsyncStorage.getItem('myKey').then(storage => {
console.warn(storage)
}).catch(e => console.warn(e))
}
然后:
this.setData('sample text')
编辑:
AsyncStorage获取数据需要一些时间,因此在值可用之前,它会返回一个承诺。您必须调用
then()
函数并从中获取值。从存储器中检索值后,将调用then()
函数中的任何内容。Hi@angle你能在上重现这个问题吗?@MazinoSUkah我在你推荐的网站上尝试过。这段代码完全可以在上面运行。我找不到我的环境的问题。请提供链接我的代码工作正常我的visual studio代码环境有问题。@Angel那么你能发布整个组件/代码块以便我们了解完整的上下文吗?我认为这是一个与安卓本身有关的问题,而不是本地反应。你知道我的问题是什么吗环境问题?因为这段代码完全可以在计算机上运行website@Angel也许这和JSC有关