Поскольку я пока не могу добавлять комментарии - добавлю к ответу Махди Баширпура, что правильно:
componentWillMount() {
BackHandler.addEventListener('hardwareBackPress', this.handleBackButton);
}
componentWillUnmount() {
BackHandler.removeEventListener('hardwareBackPress', this.handleBackButton);
}
handleBackButton = () => {
//add your code
return true;
};
Этот код будет работать, но, как вы заметили, после добавления EventListener на экран входа в систему он будет влиять на все остальные экраны в стеке, которые не перезаписывают BackHandler EventListener.
Лучший способ решить эту проблему - добавить еще одно условие, которое проверяет, что вы находитесь на экране входа в систему:
handleBackButton = () => {
if (screen == 'Login') {
BackHandler.exitApp();
return true;
}
};
Как проверить, на каком экране вы находитесь? Предполагая, что вы используете React-Navigation, посмотрите здесь .
Если у вас возникли проблемы с отслеживанием текущего экрана, я предлагаю открыть новую тему.