从evey屏幕退出应用程序的React Navigation Hardware Back Button

时间:2018-06-10 08:28:46

标签: react-native react-native-android react-navigation mobx-react

我的应用程序目前从根目录设置如下: -

-SwitchNavigator
 -Splash (Also decides if you have a token or not and where to send you...)
 -AuthFlow (If no Token...)
  -Login Screen
 -SecureFlow (If a Token exists...)

SecureFlow看起来像这样: -

(MobX提供商)

<Provider store={stores}>
    <DrawerNavigator />
</Provider>

然后DrawerNavigator如下: -

-DrawerNavigator
 -StackNavigator
  -Home(Main screen once authenticated)
  -StackNavigator (Screen1)
   -Screen1a
   -Screen1b
   -Screen1c
  -Screen2
  -Screen3
  -Screen4

React-Navigation版本为2.2.5

因此,无论出于何种原因,如果我按下Screen1a或甚至Screen3的硬件后退按钮,应用程序关闭而不是实际导航回来......内置的导航器后退按钮工作正常。

有人知道这是为什么吗?

我读过关于运行Redux的人必须手动设置后退按钮的行为,但这是MobX的情况吗?

在我的实现中,MobX或React Navigation似乎没有多少关系?

2 个答案:

答案 0 :(得分:0)

在不查看代码的情况下,很难在这里评估一个值得尊敬的正确答案。

尽管如此,这可能是由于您的android react-native堆栈,或更可能是您的路由堆叠。

我的建议是使用react-native-router-flux软件包来管理这个:

https://www.npmjs.com/package/react-native-router-flux

这已经内置了Mobx,如果不完全熟悉Mobx无状态结构,你也可以通过Actions()传递数据。

答案 1 :(得分:0)

您的后处理程序中可能缺少return true