打开/关闭导航抽屉在本机中不起作用

时间:2018-11-01 06:19:36

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

在我的react本机应用程序中,我已经使用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);

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

3 个答案:

答案 0 :(得分:2)

只需更改以下代码部分

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

放入this.props.navigation.openDrawer();

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

放入this.props.navigation.closeDrawer();

答案 1 :(得分:1)

您可以简单地使用:

this.props.navigation.toggleDrawer();

代替:

if (this.state.isSideMenuOpen) {
    {this.props.navigation.navigate('DrawerOpen')}
}
else {
    {this.props.navigation.navigate('DrawerClose')}
}
this.setState({isSideMenuOpen: !this.state.isSideMenuOpen})

答案 2 :(得分:0)

要打开抽屉,请使用this.props.navigation.openDrawer() 并使用this.props.navigation.closeDrawer()

关闭抽屉

from this Document