如何关闭反应本机弹出菜单?

mad*_*ox2 2 react-native react-native-popup-menu

我正在使用您的react-native-popup-menu 作为注销按钮。单击按钮时,身份验证已删除,屏幕将转到登录。但菜单还剩下。

屏幕切换时如何关闭该菜单?

<Menu>
  <MenuTrigger>
    <Icon
      name='more-vert'
      color='#fff'
    />
  </MenuTrigger>
  <MenuOptions>
    <MenuOption value={1}>
      <Text onPress={() => {
        this.props.onLogout()
      }}>logout</Text>
    </MenuOption>
  </MenuOptions>
</Menu>
Run Code Online (Sandbox Code Playgroud)

最初由 bexoss 在react-native-popup-menu GitHub 上提出。

sod*_*dik 6

这里的所有其他答案都有效。这是该问题的另一种(更简单的)解决方案,具体取决于您的要求。

您正在文本组件中处理注销事件,因此不会触发关闭菜单的处理程序。尝试将其传递给onSelectMenuOption 的属性:

<MenuOption onSelect={() => this.props.onLogout()}>
  <Text>logout</Text>
</MenuOption>
Run Code Online (Sandbox Code Playgroud)

注意:如果您false从处理程序中返回,菜单将不会关闭。