我目前正在更改反应导航以不使用项目的redux,因为它不再受支持https://reactnavigation.org/docs/en/redux-integration.html。
我采用了上面没有建议的不带导航道具的导航方法。遵循此处的规范https://reactnavigation.org/docs/en/navigating-without-navigation-prop.html。
我面临的问题是,当我单击它时,Android后退按钮(不是屏幕UI中的按钮)无法正常工作。表示没有显示前一个屏幕。
这在我的NavigationService.js文件中
function back() {
_navigator.dispatch(NavigationActions.back())
}
export const goBack = () => back()
在我的组件中,我有这个
import { goBack } from "~/components/nav/NavigationService"
return styleNavbar({
headerLeft: <NavbarLeftIcon onPress={goBack} iconName="back" />,
})
当我单击NavBarLeftIcon时,它确实返回到前一个屏幕,但是当我单击Android后退按钮时它不起作用。如何将其与Android后退按钮集成?
我知道有一种使用BackHandler来处理此问题的方法,
BackHandler.addEventListener("hardwareBackPress", this.onBackButtonPressAndroid)
,但是React Navigation应该隐式处理此事件,而无需任何特殊代码即可将其显式映射到Android后退按钮。使React Navigation使两个后退按钮都起作用的最佳方法是什么?