Android 反应导航-退出应用程序前创建确认屏幕
我使用的是Android 反应导航-退出应用程序前创建确认屏幕,android,react-native,react-navigation,react-navigation-v5,Android,React Native,React Navigation,React Navigation V5,我使用的是react-native和react-navigation(v5),在Android上,后退按钮会弹出每个屏幕,直到没有更多屏幕,然后退出应用程序 我想阻止退出,并在退出应用程序之前用yes | no提示用户,但检查导航。状态或canGoBack在退出前没有指向任何关于最终屏幕的线索 BackHandler.addEventListener('hardwareBackPress', () => { const canGoBack = navigation.canGoBac
react-native
和react-navigation
(v5),在Android上,后退按钮会弹出每个屏幕,直到没有更多屏幕,然后退出应用程序
我想阻止退出,并在退出应用程序之前用yes | no提示用户,但检查导航。状态
或canGoBack
在退出前没有指向任何关于最终屏幕的线索
BackHandler.addEventListener('hardwareBackPress', () => {
const canGoBack = navigation.canGoBack(); // always false
const isFocused = navigation.isFocused(); // always true
// TODO: how to check if we're on last screen?
// I need to pop until last screen and display confirmation alert
// navigation.state is a whole bunch of whores with no reliable way to check for last screen (I tried the _index_ and _history_
if ( canGoBack && isFocused ) {
navigation.goBack(); // never goes here
return true; // means handled, default behaviour of popping screen won't be executed
}
return false; // not handled, react-navigation will pop screens and when no more screens to pop, will exit app
// return true; // if I return true, no screens will get popped, and no auto-exit app also, but I need the pop until last
}
有人知道为什么
navigation.canGoBack()
总是返回false,如果真的有办法检查后面还有多少屏幕吗?在你的代码中,你说的是canGoBack
总是返回false
,在你的问题中,你说的是它总是返回true
。你指的是哪一个?它应该只在第一个屏幕上返回false
,否则返回true
。不管屏幕如何,它总是返回false,很抱歉输入错误。在你的代码中,你说的是canGoBack
总是返回false
,在你的问题中,你说的是它总是返回true
。你指的是哪一个?它应该只在第一个屏幕上返回false
,否则返回true
。不管屏幕如何,它总是返回false,很抱歉输入错误。。