当我从登陆屏幕退出时,我使用反应原生navigator
进行两个屏幕登录和登陆屏幕之间的通信,即使我可以从登录屏幕刷回登陆屏幕,这样我怎么能禁用滑动回到原生导航器
答案 0 :(得分:11)
使用immediateResetRouteStack()不会显示任何转换。要推送新场景并禁止向后滑动,请让configureScene返回:
return {
...CustomNavigatorSceneConfigs.FloatFromRight,
gestures: {}
};
我的configureScene函数如下所示:
configureScene: function(route) {
if (route.sceneConfig) {
return route.sceneConfig;
}
return {
...CustomNavigatorSceneConfigs.FloatFromRight,
gestures: {}
};
}
答案 1 :(得分:9)
我认为你做过这样的事情 -
您的导航器看起来与此相似 -
<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()
并阻止用户返回登陆屏幕。