在我的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);
但是当我点击侧面菜单按钮时,它会被点击,但是之后什么也没发生。
答案 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()