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,这对我有用。
首先,我有一个使用 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')
在这一点上,我会想象如果我点击后退按钮,我应该回到主屏幕。
但是,当我按下后退按钮(内置于 OS 中的按钮)时,我会退出我的应用并进入 Expo 项目列表。
如果我 运行 this.props.navigation.goBack() 不过,它会按预期工作,我回到了主屏幕。
为什么会这样?这是世博会的东西吗?
好的,这是我永远不会回来的时间。
原来这是最新版本的 Firebase 的问题。
https://github.com/react-navigation/react-navigation/issues/1603
解决方案是降级到 5.0.3,这对我有用。