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
}
}
我使用 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
}
}