使用反应导航来反应本机BackHandler问题

时间:2018-11-07 05:12:08

标签: react-native react-navigation

我正在使用RN制作一个应用程序,并且使用了反应导航功能,但是我对BackHandler感到困惑,并且不知道如何处理它。我的正常结构如下- 1.启动画面 2.登录屏幕 3.带抽屉菜单的主屏幕 4.通知画面 流将被启动,将检查用户是否已登录,如果是,则首先进入主屏幕,否则将进入登录状态。

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

我尝试了以下方法来实现这一目标,但无法实现- 1.处理完所有组件中的BackHandler并在主界面中写入退出,并使用Alert询问是否确实要退出,但是当我移至通知屏幕并按设备后退按钮时,主屏幕中的back方法将被覆盖并不能按我想要的方式工作。 2.在根组件中添加了BackHandler并根据当前的route参数进行了更改,已将redux与react-navigation一起使用,但它也没有帮助我。

请帮助我实现自己想要的最佳方法是什么,我真的很困

1 个答案:

答案 0 :(得分:0)

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

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

打开启动画面时,您将检查用户是否登录:

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