如何在反应原生导航器中禁用反滑动手势
我正在开发一个iOS应用程序在本机反应。 我使用了反应原生的Navigator组件。 当我将用户从一个屏幕推到另一个屏幕时,用户可以通过在屏幕左侧滑动来popup屏幕。 我知道如何在本机iOS代码中禁用它。 但是,有什么方法可以阻止React-native应用程序中的行为。
谢谢,
这是伟大的方式来做到这一点。
你不需要破解节点模块!
定义一个新的场景configuration。
const NoBackSwipe ={ ...Navigator.SceneConfigs.HorizontalSwipeJump, gestures: { pop: {}, }, };
您可以复制已写入的任何SceneConfig,只需将popup手势设置为{}即可。
这样它只会影响你想要的场景,而且你仍然可以使用所有的默认configuration。
_configureScene(route){ switch (route.name){ case 'Foo': return NoBackSwipe break; case 'Bar': return Navigator.SceneConfigs.HorizontalSwipeJump break; } };
正常的HorizontalSwipeJump仍然有一个backswipe,并且自定义的NoBackSwipe不允许向后滑动…
<Navigator ...other props... configureScene={ this._configureScene } />
繁荣。
场景configuration是对象中有许多可覆盖的属性。 如果你想从FloatFromBottom开始并禁用手势,你可以这样做:
configureScene={() => ({ ...Navigator.SceneConfigs.FloatFromBottom, gestures: {}, // or null })
使用popup手势解散组件时应该卸载组件。
我下面解决它,
在React项目中我有node_modules文件夹。 在这条path上有Navigator组件的代码,
/node_modules/react-native/Libraries/CustomComponents/Navigator/Navigator.js
在那个文件中有导航上的手势动作。 从屏幕的左边缘滑入时,通过从中删除“stream行”手势停止回弹。
只需replace下面的代码,
var GESTURE_ACTIONS = [ 'pop', 'jumpBack', 'jumpForward', ];
用这个代码,
var GESTURE_ACTIONS = [ 'jumpBack', 'jumpForward', ];