React Native - console.log 和网络命令不起作用

时间:2021-05-05 11:44:45

标签: react-native scrollview console.log

我正在编写的应用程序中有一个奇怪的问题。

这是应用的故事:

我使用 React Native 的 ScrollView 作为水平滑块, 我最多显示 5~6 张幻灯片,所以我不需要为此使用 FlatList。

幻灯片实际上是来自数据库的记录,所以实际上它们是一些动态组件 和滑块按预期工作。

在每张幻灯片中,还有一些选项按钮(Touchables)用于向服务器发送数据。 当用户按下按钮时,应用程序会打开一个模态窗口进行确认,然后向服务器发送一些数据。

到目前为止一切正常。

问题:

但是在滑块的某些幻灯片中,我遇到了一个奇怪的问题:

“console.log”命令以及将数据发送到服务器的网络命令不起作用。

在屏幕上,我看到 Buttons(Touchables) 正在工作,而且我编码的模式也根据状态变量出现和消失。但不知何故,console.log 命令和网络命令甚至都没有执行。由于我无法记录任何内容,因此也很难理解问题。

有没有人遇到过类似的问题?

谢谢

1 个答案:

答案 0 :(得分:0)

我终于解决了这个问题,想在这里分享我的经验。

在应用程序中,我使用 Axios 向后端发出发布请求, 但我对这个帖子请求的结果不感兴趣, 它们只是日志记录,因此后端调用的结果并不重要。

所以我没有使用任何“await”命令,也没有编写任何类似 Promise.then / catch 的代码, 刚刚使用 Axios 发布并滚动到我应用中的另一张幻灯片,无需等待后端。

在第 8 个 Axios 帖子后,应用开始无法运行。 看起来像工作......可触摸的效果,模态甚至导航工作 但没有其他工作。事件 console.log 命令不起作用。

这是 React Native 的一个有趣行为,但我在阅读下面的博客后了解了情况:

https://medium.com/@rotemmiz/react-native-internals-a-wider-picture-part-1-messagequeue-js-thread-7894a7cba868#

基本原因是在后端(NodeJS)我没有返回任何响应, 没有任何像 res.send("success") 这样的命令.. 所以前端 React Native 应用程序正在等待响应.. 事件如果我没有使用任何 await 或 Promise 它仍在尝试获得响应和之后7-8 调用它阻塞了主线程。

如果有办法配置Axios不等待后端响应post请求,请写在这里。