React Navigation(React Native Expo)在特定的导航流程后冻结和崩溃



我的一个应用程序模块中有以下嵌套导航器:

RootStackNavigator (modal)
|
|____MainStackNavigator (default)
|    |   
|    |______TopTabNavigator
|    |      |
|    |      |_____Chat List Screen
|    |      |
|    |      |_____Random Screen
|    |
|    |______Chat Screen
|
|____NewChatStackNavigator (default)
|
|_____Select Chat Screen
|
|_____some more screens

有两种方法可以达到";聊天屏幕":或者通过从"聊天"菜单中选择聊天;聊天列表屏幕";,或者通过从"聊天"菜单中选择聊天;选择Chat Screen(聊天屏幕(;。在这两种情况下,我都使用";导航";函数从";使用导航";hook,通过传递屏幕名称作为我的第一个参数来导航到所需的屏幕。

第一个选项运行良好,第二个选项给我带来了很多麻烦:当我按下它时,模式屏幕关闭,应用程序导航到";聊天屏幕";(预期和期望的行为,尽管我相信模式屏幕在加载下一个屏幕后关闭,但预期相反(;聊天屏幕";当返回按钮(返回"顶部选项卡导航器"(停止工作时,当滑动返回(位于"现在关闭的模式NewChatStackNavigator下"的"顶部选项卡浏览器"(时,应用程序会冻结并最终崩溃。

我相信我错过了React Navigation工作原理的一些基本内容,但我一直没能弄清楚。有人能解释一下发生了什么吗?

谢谢你的帮助!

一个目前有效的破解解决方案是从";选择聊天屏幕";并设置至少800ms的超时(低于此值的任何值都无效(以导航到聊天屏幕。

有人解释说,这个问题可能是由于聊天屏幕没有后屏幕;选择聊天屏幕";首先关闭该模态屏幕;聊天屏幕";没有封底。尽管这个答案可以解释当从"驾驶舱"返回时的冻结/撞击;聊天屏幕";,它并没有解释为什么导航到屏幕本身仍然会导致屏幕的功能无法正常工作(从不加载消息-无限卡住加载,键盘在点击消息时不关闭scoll视图,等等(

最新更新