我正在尝试仅在主屏幕上禁用android后退按钮。我的代码:
React.useEffect(() => {
BackHandler.addEventListener('hardwareBackPress', handleBackBtnPressed);
return () => {
BackHandler.removeEventListener('hardwareBackPress', handleBackBtnPressed);
}
}, [])
const handleBackBtnPressed = () => {
navigation.goBack(null);
return true
}
const navigateToNextScreen = () => {
navigation.push('Prmotions');
}
如果我移除navigation.goBack(null
(;所有屏幕上的后退按钮都被禁用,并且上面的代码根本没有禁用后退按钮。navigation.navigate("ScreenName")
不适用于移动到下一个屏幕的mu场景,这就是为什么我使用navigation.push
我通过在所有屏幕上按下后退按钮来处理它。
React.useEffect(() => {
BackHandler.addEventListener('hardwareBackPress', handleBackBtnPressed);
return () => {
BackHandler.removeEventListener('hardwareBackPress', handleBackBtnPressed);
}
}, [])
const handleBackBtnPressed = () => {
navigation.goBack(null);
return true
}
把这个放在我不想回去的地方。
React.useEffect(() => {
BackHandler.addEventListener('hardwareBackPress', handleBackBtnPressed);
return () => {
BackHandler.removeEventListener('hardwareBackPress', handleBackBtnPressed);
}
}, [])
const handleBackBtnPressed = () => {
return true
}
我知道这可能不是最好的解决方案,但对我来说效果很好。