我正在使用React Navigation
5,并且试图在屏幕上设置焦点侦听器以执行一些操作。
我需要在其中设置监听器的Screen
是一个触发浏览器启动的Class
组件,当用户使用“后退导航”关闭浏览器并返回到应用程序。
在测试此流程时,我注意到从浏览器返回甚至从后台启动时都未触发侦听器。另一方面,我可以成功测试在应用程序中的屏幕之间导航时,一切是否按预期工作。 而且,我还为焦点侦听器设置了取消订阅者,我可以看到它没有被不正确地调用,并且侦听器似乎还活着。
我搜索了其他问题,关于SO的问题,阅读了文档,但找不到解决方案。就React Native而言,我确实是一个新手,但我希望在将应用程序置于后台后也会触发焦点监听器。 还是实际上有办法实现?
我设法用示例代码创建了一个Snack(我的应用程序未使用Expo CLI,但我也看到该问题也已正确再现)。
这是一个非常简单的带有两个屏幕的StackNavigator。 Screen1
是Class
组件,我想在其中收听焦点。
我的软件版本:
iOS和Android 12.4.7和API 29&24
@ react-navigation / native 5.5.1
@ react-navigation / stack 5.5.1
react-native-gesture-handler 1.6.1
react-native-safe-area-context 3.0.5
react-native-screens 2.8.0
反应本色0.62.2
节点12.17.0
npm 6.14.6