Android操作系统的后退按钮可将我带回到Expo项目屏幕

时间:2018-07-26 00:08:48

标签: android react-navigation expo

首先,我有一个使用Expo构建的React Native应用程序,并使用React Navigation进行路由。

我正在使用SwitchNavigator在代表我的授权工作流程(登录之前的屏幕)和应用程序工作流程(登录之后的屏幕)的两个堆栈导航器之间切换,看起来像这样

const AppStack = createStackNavigator({ Home: HomeScreen, Second: SecondScreen, HouseDetail: HouseDetailScreen, Camera: CameraScreen}
);
const AuthStack = createStackNavigator({ Login: LoginScreen }
);

export default createSwitchNavigator(
  {
    AuthLoading: AuthLoadingScreen,
    App: AppStack,
    Auth: AuthStack,
  },
  {
    initialRouteName: 'AuthLoading'


  }
);

我的问题是Android中后退按钮的行为不正常。

这是一个场景。我刚刚登录,并且在App堆栈的HomeScreen页面中。我将使用

导航到SecondScreen
this.props.navigation.navigate('Second')

在这一点上,我可以想象如果按下后退按钮,我应该返回主屏幕。

但是,当我按下后退按钮(操作系统中内置的那个)时,我退出了我的应用程序,进入了Expo项目列表。

但是,如果我运行this.props.navigation.goBack(),则它会按预期运行,并且我将返回主屏幕。

为什么会这样?这是世博会的东西吗?

1 个答案:

答案 0 :(得分:3)

好吧,这是我永远都不会回来的时间。

原来这是最新版本的Firebase的问题。

https://github.com/react-navigation/react-navigation/issues/1603

解决方案是降级到5.0.3,这对我有用。