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

Par*_*dya 2 ios react-native

我正在开发一个反应原生的iOS应用程序.我使用了反应原生的Navigator组件.当我将用户从一个屏幕推送到另一个屏幕时,用户可以通过在屏幕左边缘轻​​扫来弹出屏幕.我知道如何在本机iOS代码中禁用它.但是,我们有什么办法可以在React-native app中停止这种行为.

谢谢,

par*_*ker 13

这是一个很好的方法.

你不需要破解节点模块!

定义新的场景配置.

const NoBackSwipe ={
  ...Navigator.SceneConfigs.HorizontalSwipeJump,
    gestures: {
      pop: {},
    },
};
Run Code Online (Sandbox Code Playgroud)

您可以复制他们编写的任何SceneConfig,并将弹出手势设置为{}.

这样它只会影响你想要的场景,你仍然可以使用所有的默认配置.

_configureScene(route){
   switch (route.name){
     case 'Foo':
       return NoBackSwipe
       break;
     case 'Bar':
       return Navigator.SceneConfigs.HorizontalSwipeJump
       break;
   }
};
Run Code Online (Sandbox Code Playgroud)

正常的Horizo​​ntalSwipeJump仍然有一个反向扫描,自定义NoBackSwipe不允许反向滑动...

<Navigator 
 ...other props...
 configureScene={ this._configureScene }
/>
Run Code Online (Sandbox Code Playgroud)

繁荣.