1) Чтобы кнопка назад исчезла в react-navigation v2 или новее:
navigationOptions: {
title: 'MyScreen',
headerLeft: null
}
2) Если вы хотите очистить стек навигации:
Предполагая, что вы находитесь на экране, с которого хотите перейти:
Если вы используете версию response-navigation v5 или новее, вы можете использовать navigation.reset
или CommonActions.reset
:
navigation.reset({
index: 0,
routes: [{ name: 'Profile' }],
});
Источник и дополнительная информация здесь: https://reactnavigation.org/docs/navigation-prop/#reset
Или же:
navigation.dispatch(
CommonActions.reset({
index: 1,
routes: [
{ name: 'Home' },
{
name: 'Profile',
params: { user: 'jane' },
},
],
})
);
Источник и дополнительная информация здесь: https://reactnavigation.org/docs/navigation-actions/#reset
Для более старых версий реакции-навигации:
v2-v4 использованиеStackActions.reset(...)
import { StackActions, NavigationActions } from 'react-navigation';
const resetAction = StackActions.reset({
index: 0,
actions: [
NavigationActions.navigate({ routeName: 'myRouteWithDisabledBackFunctionality' }),
],
});
this.props.navigation.dispatch(resetAction);
v1 использованиеNavigationActions.reset
3) Для Android вам также придется отключить аппаратную кнопку возврата с помощью BackHandler :
http://reactnative.dev/docs/backhandler.html
или если вы хотите использовать хуки:
https://github.com/react-native-community/hooks#usebackhandler
в противном случае приложение закроется при нажатии кнопки возврата на аппаратном уровне Android, если стек навигации пуст.