У меня есть приложение React Native, которое находится на 0,18, и я пытаюсь реализовать функциональность кнопки «Назад» для Android. У меня есть следующий код в моем index.android.js
:BackAndroid hardwareBackPress прослушиватель перестает работать после возвращения на начальный маршрут
let navigator;
BackAndroid.addEventListener('hardwareBackPress',() => {
if (navigator && navigator.getCurrentRoutes().length > 1) {
navigator.pop();
return true;
}
return false;
});
И в моей визуализации:
<Navigator
ref={(nav) => { navigator = nav; }}
...
Кнопка назад работает, если я иду вперед любое количество маршрутов, а затем я могу вернуться любое количество маршруты к первоначальному маршруту. Однако, вернувшись к первоначальному маршруту, кнопка «Назад» перестает работать до тех пор, пока я не перезагружу JS или не перезапустил приложение.
Неужели кто-то еще столкнулся с этим и какое решение?
Редактировать: Я тестировал 0,21, 0,22 и 0,23-rc3 и все еще имею эту проблему в последней версии.
У меня очень похожая часть кода, и с этим кодом кнопка возврата выходит из всего приложения, когда на начальном маршруте. Это была цель, не так ли? – zvona
Несколько. Если я запустил приложение, то сразу же нажмите кнопку «Назад», он выйдет из приложения. Однако, если я запустил приложение, перейдите на любой маршрут, затем нажмите кнопку «Назад», нажатие кнопки «Назад» снова не выйдет из приложения, и если я снова перейду на другой маршрут, нажатие кнопки «Назад» не приведет меня обратно к первому маршруту, как он должен. – NeuroXc
По существу, слушатель перестает слушать, когда я возвращаюсь к первоначальному маршруту. Если я поставлю console.log в обработчике, он не будет запущен после щелчка назад после перехода обратно к исходному маршруту. – NeuroXc