5

在我的 react native 应用程序中,我使用 Drawer Navigator 创建了一个侧边菜单,当我通过滑动打开它时它运行良好。但我想做的是在单击按钮时打开它。目前我正在尝试做槽导航道具,相关代码如下:

import { withNavigation } from 'react-navigation';

class HallsList extends React.Component {
  constructor(props){
    super(props);
    this.state = {
      isSideMenuOpen: false
    };
  } 

  renderTopView = () => {
      return(
        <View>
          <View style = {Styles.sideMenuButton}>
            <Button
              onPress = {()=> {
                if (this.state.isSideMenuOpen) {
                  {this.props.navigation.navigate('DrawerOpen')}
                }
                else {
                  {this.props.navigation.navigate('DrawerClose')}
                }
                this.setState({isSideMenuOpen: !this.state.isSideMenuOpen})
              }
            }
            title = {'Side Menu'}
            />
          </View> ..... 


export default withNavigation(HallsList);

但是当我点击侧面菜单按钮时,它会被点击,但之后什么也没有发生。

4

3 回答 3

8

只需更改以下代码部分

代替this.props.navigation.navigate('DrawerOpen')

this.props.navigation.openDrawer();

代替this.props.navigation.navigate('DrawerClose')

this.props.navigation.closeDrawer();

于 2018-11-01T06:57:15.010 回答
2

你可以简单地使用:

this.props.navigation.toggleDrawer();

代替:

// to keep track of state of drawer
if (this.state.isSideMenuOpen) {
    {this.props.navigation.navigate('DrawerOpen')}
}
else {
    {this.props.navigation.navigate('DrawerClose')}
}
this.setState({isSideMenuOpen: !this.state.isSideMenuOpen})
于 2019-10-25T13:23:00.537 回答
0

打开抽屉使用this.props.navigation.openDrawer() 和关闭抽屉使用this.props.navigation.closeDrawer()

从这个文件

于 2020-05-07T06:50:58.883 回答