Android OS 后退按钮带我返回 Expo 项目屏幕

Android OS back button takes me back to Expo projects screen

首先,我有一个使用 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')

在这一点上,我会想象如果我点击后退按钮,我应该回到主屏幕。

但是,当我按下后退按钮(内置于 OS 中的按钮)时,我会退出我的应用并进入 Expo 项目列表。

如果我 运行 this.props.navigation.goBack() 不过,它会按预期工作,我回到了主屏幕。

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

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

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

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

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