首页 > 解决方案 > expo 应用程序在网络上异常冻结,没有错误消息

问题描述

我不确定如何提供可重现的代码。但是,我将描述我的错误,我觉得这很不寻常。从本质上讲,我已经在我的 expo 应用程序上工作了很长一段时间(2 个月),直到昨天一切都很好。该应用程序突然无法运行。基本上发生的事情是,expo 开始,metro bundler 运行 - 应用程序在新选项卡中打开 - 但它在转换屏幕和登录屏幕之间冻结,并且没有任何内容得到控制台记录。我将我的应用程序移到了一个新目录,并且它再次工作 - 直到几个小时前。错误再次发生。虽然没有错误消息 - 它只是无限期地冻结。

更新:我已将问题隔离到特定的代码段:

const getData = async (key) => {
  try {
    const value = await AsyncStorage.getItem(key)
    if(value !== null) {
      return value
    }
  } catch(e) {
    // error reading value
    console.log(e)
    return e
  }
}

..then in my react component I call the function like this:
  getData('token')
  .then(value => {
      if (value !== "null"){
          navigation.navigate('Home', { replace: true })
      }
  })

我知道 getData 函数是导致它的原因,但我不明白为什么。当我删除它时,该应用程序正常工作

更新:

我在 useEffect 中封装了对 getData 函数的调用,它起作用了!- 但我不知道为什么。谁能解释一下?我还收到有关“清理”useEffect 功能的警告 - 也许我做错了什么?

标签: react-nativeexpo

解决方案


推荐阅读