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}/>
})
答案 0 :(得分:2)
如果您使用的是expo,则必须以Debug Js remotely
模式运行它。然后只有反叛者会工作,否则它就不会工作