如何从AsyncStorage解析数据
问题描述:
我收到以下错误,当我从AsyncStorage获取数据:如何从AsyncStorage解析数据<Text>
对象是不是一个做出反应的孩子(有效发现:与键{对象_40,_65,_55
:,_72})<Text>{getVar}</Text>
async function setItem(key, value) {
try {
await AsyncStorage.setItem(key, value);
console.log(key, value);
return value;
} catch (error) {
// Handle errors here
}
}
async function getItem(item) {
try {
const value = await AsyncStorage.getItem(item);;
console.log(value);
return value;
} catch (error) {
// Handle errors here
}
}
setVar = setItem('username', 'Name');
getVar = getItem('username');
我将结果输出到时收到错误3210
当我检查控制台时,我得到所需的输出/一切正确,但我无法将文本呈现在屏幕上。
任何帮助或建议将不胜感激。
谢谢。
答
交叉张贴从https://forums.expo.io/t/how-to-parse-data-from-asyncstorage-to-text/3417/4
啊,你的函数的getItem是给回一个承诺,请记住,异步关键字自动使函数返回承诺。因此,错误消息,不能把承诺对象
建议你:
把你的状态下使用的字符串:在渲染
: 状态= {“” showThisText}: {} this.state.showThisText
然后在异步componentDidMount,获取数据,做一个this.setState({showThisText:YOUR_PULLED_STRING})
答
尝试这样它会工作,
setVar = await setItem('username', 'Name');
getVar = await getItem('username');
使您的两个调用函数异步。
正在输出“Value”的'getItem'的控制台日志是:'Name' 这就是令我困惑的地方,因为正确的输出显示在控制台中。 – Roger
'Name'正在输出到日志(是否有更多的信息或测试,你希望我运行?谢谢)。 – Roger
在控制台中它是'Name'作为一个字符串。 – Roger