Я использую этот код ( здесь ) для обработки аппаратной кнопки возврата в Android.
У меня есть вложенный маршрут, и в этом коде, когда вы нажимаете кнопку «Назад», переходите к initialRoute
.
Мой маршрут такой как: Home => PoolList => PoolDetails => Cart
В Cart
Маршрут, нажав кнопку Назад, обратно к Home
. Я хочу вернуться, такие как:
Home <= PoolList <= PoolDetails <= Cart
Как изменить этот код?
import React from "react";
import { BackHandler } from "react-native";
import { addNavigationHelpers, NavigationActions, DrawerNavigator } from "react-navigation";
const AppNavigation = DrawerNavigator(
{
Home: { screen: HomeScreen },
PoolList: { screen: PoolListScreen },
PoolDetails: { screen: PoolDetailsScreen },
Cart: { screen: CartScreen },
},
{
contentComponent: props => <SideBar {...props} />,
drawerPosition: 'right'
}
);
class ReduxNavigation extends React.Component {
componentDidMount() {
BackHandler.addEventListener("hardwareBackPress", this.onBackPress);
}
componentWillUnmount() {
BackHandler.removeEventListener("hardwareBackPress", this.onBackPress);
}
onBackPress = () => {
const { dispatch, nav } = this.props;
if (nav.index === 0) {
return false;
}
dispatch(NavigationActions.back());
return true;
};
render() {
const { dispatch, nav } = this.props;
const navigation = addNavigationHelpers({
dispatch,
state: nav,
addListener,
});
return <AppNavigation navigation={navigation} />;
}
}