首先,我有一个使用 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 中的后退按钮行为不正常。
这是一个场景。我刚刚登录,现在位于应用程序堆栈的主屏幕页面。我将使用
导航到 SecondScreenthis.props.navigation.navigate('Second')
此时,我想如果我点击后退按钮,我应该返回主屏幕。
但是,当我按下后退按钮(操作系统内置的按钮)时,我就会退出我的应用程序并进入 Expo 项目列表。
如果我运行 this.props.navigation.goBack(),那么它会按预期工作,并且我会回到主屏幕。
为什么会发生这种情况?这是世博会的事吗?
最佳答案
好吧,这几个小时我再也回不来了。
事实证明,这是最新版本的 Firebase 的问题。
https://github.com/react-navigation/react-navigation/issues/1603
解决方案是降级到 5.0.3,这对我有用。
关于Android 操作系统后退按钮可带我返回 Expo 项目屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51529293/