У меня есть переключатель навигатора:
export default createSwitchNavigator({
AuthLoading: AuthLoadingScreen,
EditProfile: EditProfileScreen,
Login: LoginScreen,
Register: RegisterScreen,
ForgotPassword: ForgotPasswordScreen,
Main: MainTabNavigator,
MainLoading: MainLoadingScreen,
TripReport: TripReportScreen,
},
{
initialRouteName: 'AuthLoading',
});
Когда я нахожусь в «Основном», навигаторе с вкладками, у меня есть кнопка, которая ведет меня к экрану «TripReport»:
onPress={() => navigation.navigate('TripReport', {tripReport: tripReport})}
Когда на TripReportScreen я добавил прослушиватель событий для кнопки «Назад» Android, чтобы вернуться к «Главной», но также и к определенной вкладке:
componentDidMount() {
// Add event listener for the Android back button.
BackHandler.addEventListener("hardwareBackPress", () => {
this.props.navigation.goBack(null);
return true
})
}
GoBackфункция не работает.Единственный способ заставить его работать - это
navigation.navigate('Main)
, но это перезагружает «Main» вместо возврата к состоянию, в котором находился экран.