首页 > 解决方案 > AsyncStorage.getItem("item") 返回字符串“[object Object]”

问题描述

我正在使用AsyncStorage以在我的应用程序中保存“会话”,我在这段代码中这样做:

if (signInResult) {
    if (signInResult.userId && signInResult.accessToken) {
        await AsyncStorage.setItem("auth", signInResult);
    }
    this.props.navigation.navigate("home");
}

但是当我试图用 取回数据时AsyncStorage.getItem("auth"),它只是检索字符串[object Object]

我调整了代码 a 但在控制台中编写了一些东西,这样我就可以密切关注数据,所以这是我到目前为止遇到的情况:

在此处输入图像描述

安慰

因此,我在将其“通过”之前和之后记录了相同的数据AsyncStorage。首先,我们看到该对象仍然是一个非常多的 javascript 对象,而第二个显然只是类型的名称。我不确定这里发生了什么,但我很确定这应该有效。我实际上在另一个应用程序中使用了相同的方法,我没有这个问题。

提前致谢。

标签: react-native

解决方案


您需要JSON.stringify&JSON.parse同时从 AsyncStorage 保存和获取数据。

if (signInResult) {
  if (signInResult.userId && signInResult.accessToken) {
    await AsyncStorage.setItem("auth", JSON.stringify(signInResult));
  }
  AsyncStorage.getItem("auth").((item) => {
    JSON.parse(item);
  });

  this.props.navigation.navigate("home");
}

推荐阅读