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

问题描述 投票:0回答:2

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

-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似乎没有很多相互关系?

react-native react-native-android react-navigation mobx-react
2个回答
0
投票

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

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

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

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

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


0
投票

你的后卫处理器中可能缺少return true

© www.soinside.com 2019 - 2024. All rights reserved.