反应导航:Android后退按钮是否应在没有导航道具的情况下工作

时间:2018-07-11 00:28:02

标签: javascript android react-native react-navigation

我目前正在更改反应导航以不使用项目的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使两个后退按钮都起作用的最佳方法是什么?

0 个答案:

没有答案