React native 用按钮打开抽屉

React native 用按钮打开抽屉,react-native,expo,hamburger-menu,react-navigation-drawer,react-native-tabnavigator,React Native,Expo,Hamburger Menu,React Navigation Drawer,React Native Tabnavigator,我有一个带屏幕的抽屉导航器。其中一个屏幕是TabNavigator。现在我想实现一个HamburgerMenu按钮来打开所有Tab Navigator屏幕中的抽屉 我在哪里执行该按钮?在TabNavigator或其子屏幕或抽屉屏幕中 以下是一些代码片段: 付款人: export default class DrawerMenu extends React.Component { render() { return ( <Drawer.Navigator initialRoute

我有一个带屏幕的抽屉导航器。其中一个屏幕是TabNavigator。现在我想实现一个HamburgerMenu按钮来打开所有Tab Navigator屏幕中的抽屉

我在哪里执行该按钮?在TabNavigator或其子屏幕或抽屉屏幕中

以下是一些代码片段:

付款人:

export default class DrawerMenu extends React.Component {
 render() {
  return (
   <Drawer.Navigator initialRouteName='Home'>
    <Drawer.Screen name='Home' component={TabNavigator} />
    <Drawer.Screen name='About Us' component={AboutUsScreen} />
    <Drawer.Screen name='About the App' component={AboutTheAppScreen} />
    <Drawer.Screen name='Impressum' component={ImpressumScreen} />
   </Drawer.Navigator>
  );
 }
}
const Tab = createBottomTabNavigator();
const TabNavigator = () => {
 return (
  <Tab.Navigator tabBar={(props) => <TabBar {...props}></TabBar>}>
   <Tab.Screen
    name='Tab1'
    component={Tab1}
    initialParams={{ icon: 'info' }}
   ></Tab.Screen>
   <Tab.Screen
    name='Tab2'
    component={Tab2}
    initialParams={{ icon: 'circle-o-notch' }}
   ></Tab.Screen>
   <Tab.Screen
    name='Tab3'
    component={Tab3}
    initialParams={{ icon: 'home' }}
   ></Tab.Screen>
   <Tab.Screen
    name='Tab4'
    component={Tab4}
    initialParams={{ icon: 'glass' }}
   ></Tab.Screen>
   <Tab.Screen
    name='Tab5'
    component={Tab5}
    initialParams={{ icon: 'road' }}
   ></Tab.Screen>
  </Tab.Navigator>
 );
};
const Tab1 = () => {
    return (
        <View style={styles.container}>
            <Text style={styles.text}>Tab1</Text>
        </View>
    );
};
const Tab1 = ({navigation}) => {
    return (
        <View style={styles.container}>
            <Text style={styles.text}>Tab1</Text>
        </View>
    );
};
导出默认类DrawerMenu扩展React.Component{
render(){
返回(
);
}
}
选项卡导航器:

export default class DrawerMenu extends React.Component {
 render() {
  return (
   <Drawer.Navigator initialRouteName='Home'>
    <Drawer.Screen name='Home' component={TabNavigator} />
    <Drawer.Screen name='About Us' component={AboutUsScreen} />
    <Drawer.Screen name='About the App' component={AboutTheAppScreen} />
    <Drawer.Screen name='Impressum' component={ImpressumScreen} />
   </Drawer.Navigator>
  );
 }
}
const Tab = createBottomTabNavigator();
const TabNavigator = () => {
 return (
  <Tab.Navigator tabBar={(props) => <TabBar {...props}></TabBar>}>
   <Tab.Screen
    name='Tab1'
    component={Tab1}
    initialParams={{ icon: 'info' }}
   ></Tab.Screen>
   <Tab.Screen
    name='Tab2'
    component={Tab2}
    initialParams={{ icon: 'circle-o-notch' }}
   ></Tab.Screen>
   <Tab.Screen
    name='Tab3'
    component={Tab3}
    initialParams={{ icon: 'home' }}
   ></Tab.Screen>
   <Tab.Screen
    name='Tab4'
    component={Tab4}
    initialParams={{ icon: 'glass' }}
   ></Tab.Screen>
   <Tab.Screen
    name='Tab5'
    component={Tab5}
    initialParams={{ icon: 'road' }}
   ></Tab.Screen>
  </Tab.Navigator>
 );
};
const Tab1 = () => {
    return (
        <View style={styles.container}>
            <Text style={styles.text}>Tab1</Text>
        </View>
    );
};
const Tab1 = ({navigation}) => {
    return (
        <View style={styles.container}>
            <Text style={styles.text}>Tab1</Text>
        </View>
    );
};
const Tab=createBottomTabNavigator();
常量选项卡导航器=()=>{
返回(
}>
);
};
TabNavigator中的单屏幕:

export default class DrawerMenu extends React.Component {
 render() {
  return (
   <Drawer.Navigator initialRouteName='Home'>
    <Drawer.Screen name='Home' component={TabNavigator} />
    <Drawer.Screen name='About Us' component={AboutUsScreen} />
    <Drawer.Screen name='About the App' component={AboutTheAppScreen} />
    <Drawer.Screen name='Impressum' component={ImpressumScreen} />
   </Drawer.Navigator>
  );
 }
}
const Tab = createBottomTabNavigator();
const TabNavigator = () => {
 return (
  <Tab.Navigator tabBar={(props) => <TabBar {...props}></TabBar>}>
   <Tab.Screen
    name='Tab1'
    component={Tab1}
    initialParams={{ icon: 'info' }}
   ></Tab.Screen>
   <Tab.Screen
    name='Tab2'
    component={Tab2}
    initialParams={{ icon: 'circle-o-notch' }}
   ></Tab.Screen>
   <Tab.Screen
    name='Tab3'
    component={Tab3}
    initialParams={{ icon: 'home' }}
   ></Tab.Screen>
   <Tab.Screen
    name='Tab4'
    component={Tab4}
    initialParams={{ icon: 'glass' }}
   ></Tab.Screen>
   <Tab.Screen
    name='Tab5'
    component={Tab5}
    initialParams={{ icon: 'road' }}
   ></Tab.Screen>
  </Tab.Navigator>
 );
};
const Tab1 = () => {
    return (
        <View style={styles.container}>
            <Text style={styles.text}>Tab1</Text>
        </View>
    );
};
const Tab1 = ({navigation}) => {
    return (
        <View style={styles.container}>
            <Text style={styles.text}>Tab1</Text>
        </View>
    );
};
const Tab1=()=>{
返回(
表1
);
};

感谢您的帮助。

最后,这是一个简单的答案。我们只是不得不放弃道具。(我想)

TabNavigator中的单屏幕:

export default class DrawerMenu extends React.Component {
 render() {
  return (
   <Drawer.Navigator initialRouteName='Home'>
    <Drawer.Screen name='Home' component={TabNavigator} />
    <Drawer.Screen name='About Us' component={AboutUsScreen} />
    <Drawer.Screen name='About the App' component={AboutTheAppScreen} />
    <Drawer.Screen name='Impressum' component={ImpressumScreen} />
   </Drawer.Navigator>
  );
 }
}
const Tab = createBottomTabNavigator();
const TabNavigator = () => {
 return (
  <Tab.Navigator tabBar={(props) => <TabBar {...props}></TabBar>}>
   <Tab.Screen
    name='Tab1'
    component={Tab1}
    initialParams={{ icon: 'info' }}
   ></Tab.Screen>
   <Tab.Screen
    name='Tab2'
    component={Tab2}
    initialParams={{ icon: 'circle-o-notch' }}
   ></Tab.Screen>
   <Tab.Screen
    name='Tab3'
    component={Tab3}
    initialParams={{ icon: 'home' }}
   ></Tab.Screen>
   <Tab.Screen
    name='Tab4'
    component={Tab4}
    initialParams={{ icon: 'glass' }}
   ></Tab.Screen>
   <Tab.Screen
    name='Tab5'
    component={Tab5}
    initialParams={{ icon: 'road' }}
   ></Tab.Screen>
  </Tab.Navigator>
 );
};
const Tab1 = () => {
    return (
        <View style={styles.container}>
            <Text style={styles.text}>Tab1</Text>
        </View>
    );
};
const Tab1 = ({navigation}) => {
    return (
        <View style={styles.container}>
            <Text style={styles.text}>Tab1</Text>
        </View>
    );
};
const Tab1=({navigation})=>{
返回(
表1
);
};
这样我们就可以在onPress事件中轻松地使用
导航.openDrawer
功能