【问题标题】:getItem why returned 'Promise { "_U": 0, "_V": 0, "_W": null, "_X": null, }'getItem 为什么返回 'Promise { "_U": 0, "_V": 0, "_W": null, "_X": null, }'
【发布时间】:2022-01-14 13:30:11
【问题描述】:

我是新手反应原生,我正在使用异步和等待仍然为什么我得到这个错误

我的代码:

const getItemFromStorage = async () => {
  try {
       await AsyncStorage.getItem('USER_NAME', (error: any, result: any) => {
         if (result) {
           console.log(result);
         }else{
           console.log(JSON.stringfy(error));
         }
       });
     } catch (error) {
       console.log(error);
     }
}

用法;

<Text style={styles.text}>{JSON.stringify(getItemFromStorage, null, 4)}</Text>

结果;

{
    "_U": 0,
    "_V": 0,
    "_W": null,
    "_X": null
}

【问题讨论】:

标签: android react-native asyncstorage


【解决方案1】:

如果您存储了字符串化的 JSON,请尝试这样的操作;

getItemFromStorage = async ()  => {
        try {
          const jsonValue = await AsyncStorage.getItem('USER_NAME');
          let data = jsonValue != null ? JSON.parse(jsonValue) : null;
          console.log(data); 
  }

如果你存储了一个简单的字符串,试试这个;

let username = '';
getItemFromStorage = async ()  => {
      try {
        AsyncStorage.getItem('USER_NAME').then(result => {
          console.log(result);
          username = result;
        })
        
      } catch(e) {
        // Handle error
      }
    }

您遇到的问题是没有解决返回的 Promise。这可能是如果您在进程完成之前 console.log (可能,所以请查看我发送的第二个代码库部分),否则您存储了一个对象(字符串化)并尝试将其作为字符串读取而没有先正确解析它。

编辑

<Text style={styles.amountFiat}>{this.username}</Text>

【讨论】:

  • 感谢您的帮助,但这产生了一个空结果。我将它与 android studio 一起使用。我没有使用 console.log 得到结果,所以我使用了 return。 console.log(result); 而不是 return result;,我也在尝试在页面上打印传入的值; &lt;Text style={styles.text}&gt;{getItemFromStorage}&lt;/Text&gt;
  • 以上应该可以,真的。它几乎是我从事的一个项目的复制和粘贴,并且可以正常工作。你存的是什么,能不能展示一下setItem函数?
  • 我只存储字符串值,而不是 json。我需要这个的价值。 await AsyncStorage.setItem('USER_NAME', username);我是不是打错电话了? &lt;Text style={styles.amountFiat}&gt;{this.getAsyncData}&lt;/Text&gt;
  • 好的 - 我在上面更新了我的答案。尝试将返回的用户名存储在一个变量中,全局创建这个变量,然后在你的 Text 组件中像上面一样更新它。
  • 感谢回复,已解决。
猜你喜欢
  • 2022-01-14
  • 2021-12-10
  • 2021-03-02
  • 1970-01-01
  • 2022-01-05
  • 2021-04-21
  • 2021-12-20
  • 2021-11-26
相关资源
最近更新 更多