如何在反应原生导航器中禁用滑动

时间:2016-03-15 09:32:34

标签: javascript android react-native

当我从登陆屏幕退出时,我使用反应原生navigator进行两个屏幕登录和登陆屏幕之间的通信,即使我可以从登录屏幕刷回登陆屏幕,这样我怎么能禁用滑动回到原生导航器

2 个答案:

答案 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()并阻止用户返回登陆屏幕。