【发布时间】:2020-03-23 21:30:36
【问题描述】:
我无法让 backHandler(Android 上的硬件后退按钮)与我的 Drawer 和 React-Navigation 上的 Stack Navigation 一起使用 后退按钮在主页屏幕上完美运行,但是一旦我导航到下一个屏幕,无论屏幕是在抽屉屏幕还是在堆栈中,它都会停止工作。 这是我的 Drawer 和 MainStackNavigator。
注意:将两者结合起来对我不起作用,因为它们都不是组件的一部分,我在我的应用程序中使用 redux
有人知道如何解决这个问题吗?
抽屉导航器
const DrawerNavigator = createDrawerNavigator(
{
Homep: Homepage,
Home: HomeScreen,
Shop: ShopScreen,
Order: OrdersScreen,
Wishlist: WishlistScreen,
Search: SearchScreen,
Profile: ProfileScreen,
ShoppingBag: ShoppingBagScreen,
},
MainStackNavigator
const MainStackNavigator = createStackNavigator(
{
Drawer: { screen: DrawerStackNavigator },
CategoryProductGrid: { screen: CategoryProductGridScreen },
Settings: { screen: SettingsScreen },
Contact: { screen: ContactUsScreen },
EditProfile: { screen: EditProfileScreen },
ShippingAddress: { screen: ShippingAddressScreen },
LocList: { screen: LocationList },
ShippingMethod: { screen: ShippingMethodScreen },
PaymentMethod: { screen: PaymentMethodScreen },
AddACard: { screen: AddACardScreen },
Checkout: { screen: CheckoutScreen },
Bag: { screen: ShoppingBagScreen },
},
我正在使用 BackHander 事件监听器,如下所示
componentDidMount() {
this.backHandler = BackHandler.addEventListener('hardwareBackPress', this.handleBackPress);
}
componentWillUnmount() {
this.backHandler.remove()
}
handleBackPress = () => {
Alert.alert(
'Exit App',
'Exiting the application?',
[
{
text: 'Cancel',
onPress: () => console.log('Cancel Pressed'),
style: 'cancel'
},
{
text: 'OK',
onPress: () => BackHandler.exitApp()
}
],
{
cancelable: false
}
);
return true;
};
【问题讨论】:
标签: android react-native react-redux react-navigation