BackHandler无法正常工作

时间:2018-01-20 14:09:55

标签: react-native expo

Native,我正在使用react-navigation系统,我有一个包含Screens的应用程序,如果我在主屏幕并按下Android中的Back按钮我想要App退出,但如果我按下android后退按钮其他屏幕我的应用程序退出,我不知道会发生什么,

我的第一个屏幕是登录,第二个是注册,第三个是主屏幕,

我在主屏幕上使用了此代码

componentDidMount() {
 BackHandler.addEventListener('hardwareBackPress',this.BackButtonPressed.bind(this));
}


BackButtonPressed() {
  if(this.props.navigation.state.routeName === "Dashboard") {
    BackHandler.exitApp();
    return true;
  } else {
  return false;
  }

}
componentWillUnMount() {    BackHandler.removeEventListener('hardwareBackPress',this.BackButtonPressed.bind(this));
}

这是页面

const DrawersNavigator = DrawerNavigator({
      'Screen1':{ screen: StackNavigator({
      'Dashboard': { screen: Dashboard},
      'CP': { screen: MainScreen },
      'Polls': { screen: Polls },
      'Classified': { screen: Classifieds},
      'Customers': { screen: Customers },
      'Maps': { screen: Maps},
      'AllBusinessPartners': { screen: AllBusinessPartners },
      'Blog': {screen: Blog},
      'PrivatePolicy' : {screen: PrivatePolicy}
      }, {
        headerMode: 'none',
        transitionConfig: () => ({
          transitionSpec: {
            duration: 0
          }
        })
        })
      }},
      {
        drawerWidth: 250,
        contentComponent: props => <SideScreen {...props}/>
      })

1 个答案:

答案 0 :(得分:2)

如果您使用的是expo,则必须以Debug Js remotely模式运行它。然后只有反叛者会工作,否则它就不会工作