为特定的嵌套屏幕禁用抽屉

Disable drawer for a specific nested screen

我有一个父抽屉导航器,我想在导航器较少的特定屏幕中禁用抽屉。

我尝试将 gestureEnabled 选项放在屏幕上,但它在堆栈屏幕上有其他效果,而不是在抽屉屏幕上。

此外,我尝试在抽屉导航器中使用 getFocusedRouteNameFromRoute,但它没有给我屏幕的名称,而是其中一个父导航器。

您是否也尝试过禁用滑动?

<Drawer.Screen name="Home" 
   component={HomeScreen}
   options={{
    swipeEnabled:false,
    gestureEnabled:false
  }}
/>

经过研究,我找到了几种通过使用 dangerouslyGetParent 获取父导航器来实现此目的的方法,我不喜欢这种方法,因为我需要的导航器大约在三层以上。

我的导航器层次结构如下所示 - Drawer => Stack => Tab => Multiple Stacks, 我们保留当前选项卡,所以我最终做的是根据当前选项卡活动在抽屉屏幕上动态设置 swipeEnabled 选项。