Android 操作系统后退按钮可带我返回 Expo 项目屏幕

标签 android react-navigation expo

首先,我有一个使用 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 中的后退按钮行为不正常。

这是一个场景。我刚刚登录,现在位于应用程序堆栈的主屏幕页面。我将使用

导航到 SecondScreen
this.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/

相关文章:

android - Cypher SharedPreferences JSON 对象

android - whatsApp 发送消息让用户在 ios 中编辑消息,在 android 中它没有

android - Robolectric-Gradle 插件运行单一测试

reactjs - 如何在 react 抽屉导航中添加按钮(在现有按钮之间)

android - Expo Developer Tools 与 Expo CLI 断开连接

android - Facebook android 应用权限 : ask for get user profile picture

reactjs - 如果应用程序关闭,则 React-Native 深层链接不起作用(React-Navigation v5)

reactjs - 如何将 'from outside' 链接到导航器(例如从全局页脚)

javascript - React-native:InputText 事件触发 TouchableHighlight onPress() 事件

javascript - 我可以将音频/视频对象从 expo-av 传递到 redux 状态吗?