如何从AsyncStorage解析数据

问题描述:

我收到以下错误,当我从AsyncStorage获取数据:如何从AsyncStorage解析数据<Text>

对象是不是一个做出反应的孩子(有效发现:与键{对象_40,_65,_55

<Text>{getVar}</Text> 
:,_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'); 

我将结果输出到时收到错误3210

当我检查控制台时,我得到所需的输出/一切正确,但我无法将文本呈现在屏幕上。

任何帮助或建议将不胜感激。

谢谢。

+0

正在输出“Value”的'getItem'的控制台日志是:'Name' 这就是令我困惑的地方,因为正确的输出显示在控制台中。 – Roger

+0

'Name'正在输出到日志(是否有更多的信息或测试,你希望我运行?谢谢)。 – Roger

+0

在控制台中它是'Name'作为一个字符串。 – Roger

交叉张贴从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'); 

使您的两个调用函数异步。