React Native Navigation:如何禁用模式上的后退按钮?

React Native Navigation: how to disable backbutton on modals?

我使用 showModal() 打开了一个登录模式。

它没有导航栏按钮,因此 ios 用户无法关闭此模式。

问题:实际上Android用户可以使用硬件后退按钮关闭登录模式。

在我的登录模式中,我尝试添加

BackHandler.addEventListener('hardwareBackPress', function() { return true; }

禁止 Android 上的后退按钮,但它根本不起作用。

我这样做是因为我阅读了 official RN guide 上的内容:

Android: Detect hardware back button presses, and programmatically invoke the default back button functionality to exit the app if there are no listeners or if none of the listeners return true.

将 console.log 添加到此函数中,我看到事件在 'normal' 屏幕上触发,但当我显示模态时却没有!

我做错了什么?

可以使用 overrideBackPress 属性 覆盖硬件后退按钮,如 here

所述

您可以在您的组件中处理后退压力:

onNavigatorEvent(event) {
    if (event.id === 'backPress') {
        //Do your thing
    }
}