我有一个topBar,它带有一个可切换侧边菜单的按钮。
我已经注册了一个NavigationButtonPressed动作,如下所示
navigationButtonPressed({ buttonId }) {
switch (buttonId) {
case 'sideMenuButtonId':
Navigation.mergeOptions(this.props.componentId, {
sideMenu: {
left: {
visible: true
}
}
});
break
default:
break
}
}
但是在这种情况下,该按钮仅使sideMenu可见,而Im试图使用它,以便它切换菜单的打开和关闭状态。 所以我用下面看到的可变方法代替了上面的方法。
var sideMenuVisible = false
navigationButtonPressed({ buttonId }) {
switch (buttonId) {
case 'sideMenuButtonId':
sideMenuVisible = !sideMenuVisible
Navigation.mergeOptions(this.props.componentId, {
sideMenu: {
left: {
visible: sideMenuVisible
}
}
});
break
default:
break
}
}
如果用户仅使用按钮来打开和关闭sideMenu,则可以很好地工作,但是用户也可以通过滑动菜单来打开/关闭菜单,也可以点击菜单将其关闭。
是否可以检查sideMenu
的可见性,以便我可以正确地使用操作来打开/关闭命令菜单?
答案 0 :(得分:0)
它可以做的简单得多。 认为您应该将其创建为状态,因为组件必须知道,当状态更改时,应重新呈现它。 所以像
state = { isOpen: false };
toggleSidebar = () => {
this.setState({ isOpen: !isOpen })
}
现在,您应该在单击按钮时调用toggleSidebar函数