【问题标题】:react-native-navigation side menureact-native-navigation 侧边菜单
【发布时间】:2018-12-09 21:11:59
【问题描述】:

我正在尝试使用库 react-native-navigation v2,我需要一些帮助我被侧边菜单卡住了,我无法让它工作......

我这样初始化布局:

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"
                            }
                        }
                    ]
                }
            }
        }
    }
});

});

有了之前注册的组件,并且在 Drawer 组件中我希望当用户点击该项目时,它会触发 goToScreen2(),

我试过了: Navigation.setStackRoot(this.props.componentId, {...} Navigation.mergeOptions(this.props.componentId, {...} Navigation.push(this.props.componentId, {...}

但是,没有一个工作......有人可以解释我怎样才能让它工作?

谢谢。

【问题讨论】:

  • 我会推荐你​​反应导航 v2
  • 我已经知道 react ta navigation 但我想使用 react-native-navigation

标签: react-native react-native-navigation drawer side-menu


【解决方案1】:

您应该从根堆栈中心的侧面菜单中添加要导航到的所有组件,如下所示:

center: {
   stack: {
    id: "AppRoot",
    children: [{
        component: {
        id: "anyID",
        name: "Screen2"
        }
    }]
  }
}

【讨论】:

  • 这使得抽屉像一个堆栈而不是像一个抽屉。当我推动新屏幕时,抽屉关闭(因为我要求他这样做)但我有一个返回按钮,它通向最后一个屏幕。因此,即使我删除了这个返回按钮,它也会将整个导航堆栈保留在内存中......我发现 atm 的唯一方法是使用setStackRoot
  • @Fatema if 第一个屏幕是“登录”,为简单起见,用户只需单击“登录”即可转到“登录”屏幕。我需要在中心添加这些屏幕吗?
猜你喜欢
  • 2017-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-07
  • 1970-01-01
  • 1970-01-01
  • 2018-04-30
  • 2017-08-02
相关资源
最近更新 更多