【发布时间】:2018-03-12 13:58:05
【问题描述】:
我使用showModal() 打开了一个登录模式。
它没有导航栏按钮,因此 ios 用户无法关闭此模式。
问题:实际上Android用户可以使用硬件返回按钮来关闭登录模式。
在我的登录模式中,我尝试添加
BackHandler.addEventListener('hardwareBackPress', function() {
return true;
}
在 Android 上禁止后退按钮,但它根本不起作用。
我这样做是因为我阅读了official RN guide 上的以下内容:
Android:检测硬件后退按钮按下,如果没有侦听器或没有侦听器返回 true,则以编程方式调用默认的后退按钮功能以退出应用程序。
将 console.log 添加到此函数中,我看到事件在“正常”屏幕上触发,但在显示模式时却没有!
我做错了什么?
【问题讨论】:
-
如果你的应用显示一个打开的Modal,BackHandler不会发布任何事件!在这种情况下,您必须使用
onRequestClose- 模态的属性(请参阅facebook.github.io/react-native/docs/modal#onrequestclose)