我有一个父抽屉导航器,我想在一个特定的屏幕中禁用抽屉,该屏幕几乎没有导航器。
我尝试将 gestureEnabled
选项放在屏幕上,但它对堆栈屏幕而不是抽屉屏幕有其他影响。
此外,我尝试在抽屉导航器中使用 getFocusedRouteNameFromRoute
,但它没有给我屏幕的名称,而是它的父导航器之一。
答案 0 :(得分:0)
您是否也尝试过禁用滑动?
<Drawer.Screen name="Home"
component={HomeScreen}
options={{
swipeEnabled:false,
gestureEnabled:false
}}
/>
答案 1 :(得分:0)
经过研究,我找到了几种通过使用 dangerouslyGetParent
获取父导航器来实现此目的的方法,我不喜欢这种方法,因为我需要的导航器大约为三层。
我的导航器层次结构看起来像这样 - 抽屉 => 堆栈 => 标签 => 多个堆栈,
我们保存了当前的 Tab,所以我最终做的是根据当前活动的 Tab 在 Drawer 屏幕上动态设置 swipeEnabled
选项。