Как отключить swipe back в react native navigator
Я использую react native navigator
для связи между двумя экранами входа в систему и посадочного экрана, когда я выхожу из посадочного экрана, даже я могу вернуться к посадочному экрану с экрана входа в систему, так как я могу отключить салфетки обратно в react native navigator
2 ответов
использование immediatelyResetRouteStack () не будет отображать переход. Чтобы нажать новую сцену и запретить прокрутку назад, верните configureScene:
return {
...CustomNavigatorSceneConfigs.FloatFromRight,
gestures: {}
};
моя функция configureScene выглядит так:
configureScene: function(route) {
if (route.sceneConfig) {
return route.sceneConfig;
}
return {
...CustomNavigatorSceneConfigs.FloatFromRight,
gestures: {}
};
}
Я предполагаю, что вы сделали что-то вроде этого-
ваш навигатор похож на этот -
<Navigator
style={styles.container}
initialRoute={{ name: 'signin', index: 0 }}
renderScene={ this.renderScene }
configureScene={ () => { return Navigator.SceneConfigs.PushFromRight; }}
/>
и когда вы нажимаете на кнопку" Войти" -
this.props.navigator.push({name: 'componentName'});
вместо push()
использовать immediatelyResetRouteStack()
-
this.props.navigator.immediatelyResetRouteStack([{name: 'componentName'}]);
это сбросит routeStack и предотвратит возврат к экрану входа в систему.
аналогично, когда вы выходите из посадочного экрана, используйте immediatelyResetRouteStack()
и запретить пользователю возвращаться к посадочный экран.