【问题标题】:react-native async function failed after reload重新加载后反应本机异步功能失败
【发布时间】:2021-12-25 09:44:33
【问题描述】:

我在 iOS 模拟的 react-native 中遇到了一个非常奇怪的问题,以下异步函数在第一次构建后运行良好,如果我重新加载,那么等待函数似乎被冻结了。如果我删除了应用程序并重新构建,那么它将运行良好

const processPayment = async (amount: number) => {
    console.log("start fetching")

    const data = await new Promise((resolve, reject) => {
      setTimeout(() => {
        resolve({ item: 10 })
      }, 1000)
    })

    console.log(data)
    console.log("end fetching")
  }

重新加载前的控制台日志,可以运行多次

 LOG  start fetching
 LOG  {"item": 10}
 LOG  end fetching

重新加载后的控制台日志

 LOG  start fetching

调用函数

<TouchableOpacity onPress={() => {processPayment(100)}}>
 <Text style={styles.keypad}>PAY</Text>
</TouchableOpacity

【问题讨论】:

  • 能否也显示调用processPayment函数的代码
  • @adhinarayan 我已经更新了帖子上的调用流程
  • “重载”是真正的重载还是热重载?在热重载中,很多静态和异步函数都会出现问题。如果您从 Xcode 重新运行该应用程序,应该没问题。这对于最终的应用程序来说并不是一个真正的问题,因为它不会让热重载混淆所有内容。
  • @Christian by reload 表示我在地铁窗口上按了“r”。您将如何进行真正的重新加载?
  • @DanielNguyen 那我不知道

标签: react-native async-await es6-promise reload


【解决方案1】:

我使用 ignite 样板反应原生并禁用故事书组件,问题似乎消失了。

【讨论】:

  • 总结链接中描述的解决方案。以后可能无法访问链接
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-05-27
  • 1970-01-01
  • 2020-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-16
相关资源
最近更新 更多