在所有屏幕上反应原生抽屉导航器

时间:2018-06-01 10:55:23

标签: android ios react-native navigation-drawer stack-navigator

我的抽屉导航器未在所有屏幕上打开。

抽屉导航:

import { DrawerNavigator } from "react-navigation"

const AppDrawerNavigator = new DrawerNavigator({
    Welcome: { screen: WelcomeScreen },
    JobList: { screen: JobListScreen }
},
    {
        drawerPosition: "right"
    })

export default AppDrawerNavigator;

现在,我实际上只想在我的抽屉里显示2个按钮,即Logout&重启。我是否需要为此注销和重置设置单独的屏幕/组件? 此外,我想在我拥有的所有屏幕上显示抽屉,但是,它仅在我的WelcomeScreen和JobListScreen上打开/显示。

StackNav(在index.js中):

const Navigator = StackNavigator({
    DrawerNavigator: { screen: DrawerNavigator },
    Login: { screen: LoginScreen },
    Tpo: { screen: TPOScreen },
    Welcome: { screen: WelcomeScreen },
    JobList: { screen: JobListScreen },
    JobDetails: { screen: JobDetailsScreen },
    JobOrdersList: { screen: JobOrdersListScreen }
})

如果你看到,抽屉没有在其他屏幕上打开,即JobDetails,JobOrdersList等。

如何在所有屏幕上显示抽屉,只使用两个按钮而不是WelcomeScreen和JobListScreen?

感谢。 请耐心等待我,因为我是这里的新手,反应原生。

2 个答案:

答案 0 :(得分:0)

您需要在页面右上角设置按钮,并且您必须为按钮onClick编写打开抽屉的代码

this.props.navigation.navigate('DrawerOpen');

答案 1 :(得分:0)

正如您在开始时所写,在参数对象中只有两个页面被称为新的DrawerNavigator,因此该抽屉仅显示在WelcomeScreen和JobListScreen上。如果要显示所有屏幕,则需要使用所有作为参数创建的StackNavigator来调用新的DrawerNavigator方法

import { DrawerNavigator } from "react-navigation"

  const AppDrawerNavigator = new DrawerNavigator({
   Home: { screen: Navigator },
   },
{
    drawerPosition: "right"
})

export default AppDrawerNavigator;