android - React native/Trouble with AsyncStorage 获取项目

标签 android react-native

我正在构建一个 Android 应用程序,但我正在努力使用 AsyncStorage。我想创建一个函数,将一个键作为输入并将该项目还给我。我的问题是,当我调用此函数时,它返回 { _40: 0, _65: 0, _55: null, _72: null } 而不是我要查找的值。

这是我的代码:

renderList() {

    async function save() {
        await AsyncStorage.setItem('Title', 'hello');
    }

    async function fetch(key) {
        const value = await AsyncStorage.getItem(key);
        console.log(value) ; // Return hello
        return value
    }

    save() ;
    fetch() ;

    const reponse = fetch() ;
    console.log(reponse) ; // Return { _40: 0, _65: 0, _55: null, _72: null }

    return (
        <Text style={styles.noteElementTitle}> Aa </Text>
    )
}

编辑:

我试过这个:

    async function getBody() {
    await save();
    const response = await fetch('Title');
    console.log(response);
    this.setstate({ title : response}) ;
    }

    getBody() ;

但我仍然收到错误:TypeError: undefined is not a function (evaluating 'this.setstate({ title: response })')

最佳答案

您看到的是由标记为 async 的函数返回的 Promise 对象。您需要在调用函数时使用 await,或者将值视为 promise 并使用 thencatch。例如:

await save();
const response = await fetch();
console.log(response);

save()
  .then(() => fetch())
  .then(response => console.log(response));

此外,请记住,您不应该在渲染函数中使用异步函数。在上面的代码中,您需要将 fetch() 函数的结果放入组件状态。

关于android - React native/Trouble with AsyncStorage 获取项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46408439/

相关文章:

base64 - 如何在 React Native 中获取图像的 base64

Android - 相机,每 20 秒保存一次图片

android - 在 Android Google Map v2 中为我的自定义标记添加发光效果

java - 拒绝在颜色类型中添加参数

javascript - React Native中如何从TextField获取值,由于空值导致无法将数据存储到数据库

react-native - 在 action creator 中获取状态的 Redux 模式

java - 如何获取其他应用程序的日志?

c# - Proguard 错误 (Xamarin c#)

javascript - React Native 中未定义函数

Android 模拟器不在屏幕上显示谷歌地图