代码之家  ›  专栏  ›  技术社区  ›  Diskdrive

安卓操作系统后退按钮带我回到世博会项目屏幕

  •  2
  • Diskdrive  · 技术社区  · 6 年前

    首先,我有一个使用expo和使用react导航进行路由的react本地应用程序。

    我正在使用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'
    
    
      }
    );
    

    我的问题是安卓系统中后退按钮的行为不正常。

    这里是一个场景。我刚登录,我在应用程序栈的主页上。我将使用导航到第二个屏幕

    this.props.navigation.navigate('Second')
    

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

    但是,当我按下后退按钮(这个内置在操作系统中的按钮)时,我会从我的应用程序中退出并进入世博会项目列表。

    不过,如果我运行这个.props.navigation.goback(),它就会按预期工作,我会回到主屏幕。

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

    1 回复  |  直到 6 年前
        1
  •  3
  •   Diskdrive    6 年前

    好吧,这几个小时我再也回不来了。

    事实证明这是FireBase最新版本的问题。

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

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