【问题标题】:React Native BackHandler issue with react navigationReact Native BackHandler 问题与反应导航
【发布时间】:2018-11-07 05:12:07
【问题描述】:

我正在使用 RN 制作一个应用程序并使用了 react-navigation,我被 BackHandler 困住了,不知道如何处理它。我有一个正常的结构如下 - 1.启动画面 2.登录画面 3.带有抽屉菜单的主屏幕 4. 通知画面 将加载启动流程并检查用户是否已登录,如果已登录,则主屏幕将是第一个,否则登录将是第一个。

如果我从登录中按返回,它应该退出应用程序并与主屏幕相同,如果我从通知屏幕返回,它应该导航到主屏幕。

我尝试了以下方法来实现这一点,但无法做到 - 1. 已在所有组件中处理 BackHandler 并已在 home 中写入 exit 并使用 Alert 登录并询问是否真的要退出,但是当我移动到通知屏幕并按下设备返回按钮时,主屏幕中的 back 方法被覆盖并且不按我想要的方式工作。 2.在根组件中添加BackHandler,并根据当前路由参数制作东西,使用redux和react-navigation,但它也没有帮助我。

请帮助我实现我想要的最佳方法是什么,我真的卡住了

【问题讨论】:

    标签: react-native react-navigation


    【解决方案1】:

    您应该像这样创建 2 个堆栈导航器:

    1. AuthNavigator:登录
    2. MainNavigator:主页 -> 通知

    当打开启动画面时,你会检查用户是否登录:

    • 如果没有,打开AuthNavigator:this.props.navigation.dispatch(AuthNavigator); 登录成功后,需要重置回栈并导航到 MainNavigator
    • 如果是,打开 MainNavigator:this.props.navigation.dispatch(MainNavigator);

    【讨论】:

      猜你喜欢
      • 2020-10-05
      • 2018-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多