如何在反应导航5上禁用特定屏幕中的滑动操作?

Ozz*_*zie 3 react-native react-navigation-v5

我在我的项目中使用 React navigation 5,并且在项目中的某个地方我需要制作嵌套导航器,如下所示:

*Stack Navigator
**Material top tab navigatior
***Material bottom tab navigator
**** Stack Navigator
Run Code Online (Sandbox Code Playgroud)

我的目标是,实际上我想要拥有 3 个像 Instagram 一样的静态屏幕。左侧是相机,中间是实际内容,右侧是其他内容。只有当你位于中心时,我才希望底部选项卡可见,这就是我这样创建它的原因。在这种情况下,在所有屏幕中,您可以向右或向左滑动以到达相机或右侧组件。

但我想做的是,我想在中心组件的详细屏幕中“禁用”滑动操作。因为中心组件是上面的材质底部选项卡导航器,还包含一些堆栈导航器,例如 posts、postDetail。当我转到 postDetail 时,我想禁用向左或向右滑动操作。因为在某些细节上我使用了一些可滑动的元素,例如反应本机滑动器等。

我试图提供gesturesEnabled: false , swipeEnabled: false材质底部导航器作为道具,但它不起作用,因为它是底部选项卡导航器并且不接受这些参数。

我还尝试捕获状态索引,如果它大于 0 或 1,我将禁用它,但在材料顶部选项卡导航器中,当我转到 postDetail 时,导航器不会更改索引。它不像以前的版本(react navigation 4)那样工作。

*Stack Navigator
**Material top tab navigatior
***Material bottom tab navigator
**** Stack Navigator
Run Code Online (Sandbox Code Playgroud)

Kus*_*tha 6

尝试在 Screen 中设置gestureEnabled为。falseoptions

<Screen name={key} options={{gestureEnabled: false}} component={Component} />
Run Code Online (Sandbox Code Playgroud)