【问题标题】:Minimizing the react native app without going back最小化反应原生应用程序而不返回
【发布时间】:2020-12-12 18:05:54
【问题描述】:

我从屏幕 A 正常导航到屏幕 B

我想让屏幕 B 作为应用程序的根 / 导航应该忽略屏幕 A 并将屏幕 B 作为根处理

所以在屏幕 B 中,当用户点击 android 导航返回时,它应该最小化应用程序 不返回屏幕A

这是我在屏幕 B 中的代码

BackHandler.addEventListener("hardwareBackPress" , () => {
  BackHandler.exitApp();
});

当我点击 android 后退按钮时

实际结果

它最小化应用程序,当我再次打开它时,它显示屏幕 A

预期结果

它应该只最小化应用程序,当我再次打开它时,它会显示相同的屏幕 B

顺便问一下,有没有什么方法可以让屏幕作为根而不是手动放置这么多监听器并使事情变得复杂?

更正确的意思是,以编程方式更改根屏幕,因为 React Navigation 仅初始化它,以后无法更改它

例子

const RootNavigator = createSwitchNavigator(
  {
     ScreenA : ScreenA,
     ScreenB : ScreenB
  },
  {
    initialRouteName: 'ScreenA' // I mean here
  }
);

如果我想在 ReactNavigation 初始化之后在运行时更改这个 initialRouteName 怎么办

【问题讨论】:

    标签: android react-native react-navigation


    【解决方案1】:

    【讨论】:

      【解决方案2】:

      如果您需要将 initialRouteName 设置为道具,那是因为在呈现应用导航之前需要异步获取一些数据。处理此问题的另一种方法是使用 switchnavigator 并在获取异步数据时显示一个屏幕,然后在必要时使用参数导航到适当的初始路由。完整示例请参见 docs

      这是一个开放的RFC

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-19
        • 2017-10-25
        • 1970-01-01
        • 2012-05-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多