从AsyncStorage获取数据时出现以下错误:
对象无效作为React子对象(找到:具有键{_40,_65,_55,_72}的对象)
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');
我在输出结果时遇到错误:
<Text>{getVar}</Text>
当我检查控制台时,我得到了所需的输出/一切都正确但我无法将文本渲染到屏幕上。
非常感谢任何帮助或建议。
感谢。
答案 0 :(得分:0)
从https://forums.expo.io/t/how-to-parse-data-from-asyncstorage-to-text/3417/4
交叉发布啊,你的函数getItem给出了一个Promise,记住async关键字会自动使函数返回Promise。因此错误消息,不能将Promise对象放在
中建议你:
将您将使用的字符串置于状态: state = {showThisText:&#39;&#39;}
in render:{this.state.showThisText}
然后在异步componentDidMount中,获取数据并执行this.setState({showThisText:YOUR_PULLED_STRING})
答案 1 :(得分:0)
尝试它会起作用,
setVar = await setItem('username', 'Name');
getVar = await getItem('username');
同时使两个调用函数都异步。