如何在主页中打开后退按钮 android 以退出应用程序并关闭反应本机导航侧菜单

Posted

技术标签:

【中文标题】如何在主页中打开后退按钮 android 以退出应用程序并关闭反应本机导航侧菜单【英文标题】:How to handle back button android to both exit app and close react native navigation side menu when it is open in home page 【发布时间】:2020-04-21 12:30:20 【问题描述】:

我在我的项目中使用 react native navigation Wix 侧边菜单。我想在它打开并且用户单击移动物理后退图标时关闭它。但是我已经为后退按钮定义了当用户点击它时关闭我的应用程序。所以我的后退图标应该做以下两项工作:

1- 它应该在菜单打开时关闭。 2- 当菜单关闭时,它应该从应用程序中退出。

我已经在 redux store 中保存了侧边菜单的状态(打开:true,关闭:false)来处理它。但问题是当用户在移动屏幕上滑动打开或关闭菜单时。在这种情况下,我无法在 redux 商店中更新我的状态。我无法在反应原生导航中禁用侧菜单的此选项(滑动)以解决问题。所以我不知道如何解决它!

【问题讨论】:

【参考方案1】:

您可以在侧边菜单屏幕中收听 componentDidAppear 事件,以设置您的 redux 存储状态以使其可见。

您还可以在屏幕中添加Backhandler 事件处理程序以关闭侧边菜单或退出应用程序。

例如:

useEffect(() => 
  BackHandler.addEventListener('hardwareBackPress', () => 
    if (reduxStore.sideMenuOpened) 
      // Close the side menu.
      closeSideMenu()
      // Prevent the Backhandler's event bubbling up.
      return true
    
    // Let the backhandler's event bubble up to close the app if you are in root screen.
    return false
  )
, [])

【讨论】:

以上是关于如何在主页中打开后退按钮 android 以退出应用程序并关闭反应本机导航侧菜单的主要内容,如果未能解决你的问题,请参考以下文章

Android应用程序中的后退按钮无法退出应用程序

离子2:如何处理硬件后退按钮,检查应用程序中退出的确认

使用后退按钮退出应用程序后,我只能从共享偏好中获取值

单击两次后退按钮以退出活动

如何在一个页面上禁用 Android 后退按钮并在所有其他页面上更改为退出按钮

主页和后退按钮在 android 模拟器像素 2 和像素 3 api 中不起作用