首先,我有一个使用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页面中。我将使用
导航到SecondScreenthis.props.navigation.navigate('Second')
在这一点上,我可以想象如果按下后退按钮,我应该返回主屏幕。
但是,当我按下后退按钮(操作系统中内置的那个)时,我退出了我的应用程序,进入了Expo项目列表。
但是,如果我运行this.props.navigation.goBack(),则它会按预期运行,并且我将返回主屏幕。
为什么会这样?这是世博会的东西吗?
答案 0 :(得分:3)
好吧,这是我永远都不会回来的时间。
原来这是最新版本的Firebase的问题。
https://github.com/react-navigation/react-navigation/issues/1603
解决方案是降级到5.0.3,这对我有用。