如何使用反应原生导航 v2 添加侧边栏抽屉?

Posted

技术标签:

【中文标题】如何使用反应原生导航 v2 添加侧边栏抽屉?【英文标题】:How to add sidebar drawer with react native navigation v2? 【发布时间】:2019-01-03 01:54:24 【问题描述】:

使用 react-native-navigation v1,您可以像这样设置抽屉:

drawer: 
    left: 
        screen: 'ScreenName'
    

在 react-native-navigation 的文档中,他们提到仍然支持抽屉,

但是没有例子说明它的用法。我尝试了与 v1 相同的方法,但没有奏效。有没有人以某种方式实现了它?

【问题讨论】:

【参考方案1】:

在 RNN V2 及更高版本中,您只需使用 sideMenu 而不是旧的抽屉选项 Ex 即可添加抽屉:

Navigation.events().registerAppLaunchedListener(() => 
  Navigation.setRoot(
    root: 
      sideMenu: 
        id: "sideMenu",
        left: 
          component: 
            id: "Drawer",
            name: "navigation.Drawer"
          
        ,
        center: 
          stack: 
            id: "AppRoot",
            children: [
              component: 
                id: "App",
                name: "navigation.AppScreen"
              
            ]
          
        
      
    
  );

Take a look at this 并导航到 sideMenu

为了关闭抽屉,使用 Navigation.mergeOptions 并像这样传递可见的 false

<Button onPress=this.hideSideMenu/>

hideSideMenu() 
  Navigation.mergeOptions(this.props.componentId, 
    sideMenu: 
      left: 
        visible: false
      
    
  );

【讨论】:

你能告诉我如何在某个页面禁用 @pkyeck 没有实现 hideSideMenu 我得到 instance.render() is undefined 错误。知道这是为什么吗?我正在尝试重新创建您的侧边菜单 @user2763557 我刚刚编辑了答案 - 这是 devoka ​​的答案 @devoka,你能帮我解决我的错误吗?我在谷歌上找不到任何东西... 链接已损坏。

以上是关于如何使用反应原生导航 v2 添加侧边栏抽屉?的主要内容,如果未能解决你的问题,请参考以下文章

使用 react-native 抽屉实现侧边栏/汉堡菜单

如何一起使用底部导航栏和侧边导航栏,我的侧边导航按钮不显示,而是底部导航

模态打开时使抽屉可见。反应原生

单击导航抽屉引导程序时未显示侧导航栏

VueJS + Vuex + Vuetify 导航抽屉

滚动时如何让侧边栏对齐到顶部?