Импорт BackHandler
из реагировать нативно,
in componentdidmount
bind backhandler
событие с использованием BackHandler.addEventListner()
посмотри,
componentDidmount=()=>{
BackHandler.addEventListener("hardwareBackPress", this.handleBackButton);
}
componentWillUnmount = () => {
BackHandler.removeEventListener("hardwareBackPress", this.handleBackButton);
};
handleBackButton = () => {
this.props.navigation.navigate('SomeScreen');
return true;
};
И где бы вы ни использовали goBack()
измените его на navigate("ScreenName")
EDIT
за неожиданное поведение на других экранах,
сделать это, в котором используется задний ход.
import {NavigationEvents} "react-navigation";
при рендеринге внутри первого компонента,
<NavigationEvents onWillFocus={this.compnentDidmount} onWillBlur={this.componentWillUnmount} />
если у вас есть другая логика в didmount и unmount, создайте отдельные методы для обоих и выполните привязку в NavigationEvents