react-native - 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 功能的警告 - 也许我做错了什么?
解决方案
推荐阅读
- amazon-web-services - 用于获取 ELB 的 Route 53 记录集的 AWS CLI 命令
- oracle - 带有用户创建记录的关联数组的 PLS-00306 错误
- python - PySide2 QListView QTableView 同步问题
- python - python - 如何在出现密钥错误时在python中连接redis服务器?
- http - 如何取消在 Flutter 中使用 http.MultipartRequest() 发送的正在进行的文件上传?
- css - 我可以在 cpanel 中使用 !important 吗?我使用 viewen 并获得了 cpanel 但不能在我的 css 中使用 !important 属性
- reactjs - 在 React+Redux 项目中使用 Bootstrap 和 jQuery 库
- python - 如何使由线程更新的字符串反映 Python 诅咒的变化?
- vue.js - 即使响应为 200(成功),也会调用 Axios Catch
- java - appium`HasClipboard()`的“方法尚未实现”异常