React native React navigation 4,底部选项卡导航器:如何在每次从后台重新打开应用程序时打开初始路线

React native React navigation 4,底部选项卡导航器:如何在每次从后台重新打开应用程序时打开初始路线,react-native,react-navigation,react-navigation-bottom-tab,React Native,React Navigation,React Navigation Bottom Tab,当前行为 我有一个带有4个选项卡的TabNavigator,每个选项卡都是stackNavigator,现在每个stackNavigator只有一个屏幕:主页、地图、预订、个人资料。我用的是React导航4。 在每个选项卡中,我都会使用导航选项选项卡BARONPRESS在屏幕之间导航,这样,backBehavior:“history”就有了意义 const TabNavigator = createBottomTabNavigator( { Home: { scree

当前行为

我有一个带有4个选项卡的TabNavigator,每个选项卡都是stackNavigator,现在每个stackNavigator只有一个屏幕:主页、地图、预订、个人资料。我用的是React导航4。 在每个选项卡中,我都会使用导航选项选项卡BARONPRESS在屏幕之间导航,这样,backBehavior:“history”就有了意义

const TabNavigator =   createBottomTabNavigator(
  {
    Home: {
      screen: HomeStack,
      navigationOptions: {
        tabBarOnPress: ({navigation}) => {
          navigation.navigate('Home')
        },
      }
    },
//other tabs
  },
  {
    initialRouteName: 'Home',
    backBehavior: 'history'
  }
)
但是如果我在屏幕之间导航,可能是按照HOME->PROFILE->HOME->MAPS的顺序,路由器的堆栈是PROFILE,HOME,MAPS,因为导航函数的行为。 同样,当我们在安卓设备上按下后退按钮时,访问屏幕的顺序是“地图->主页->个人资料”,如果我们再次按下后退按钮,我们将退出应用程序,将其置于后台。现在,回到应用程序中,打开的屏幕是PROFILE,它也是导航堆栈中的第一条路线

预期行为


当我从后台重新打开应用程序时,我不想出现在个人资料屏幕上,而是出现在主屏幕上。我想重置导航堆栈中的第一条路由,用主堆栈更改它。这与Instagram的行为相同(尝试转到主页->个人资料->主页,按两次后退按钮;现在按第三次后退按钮:应用程序进入后台;现在重新打开Instagram:应用程序从主页重新启动)

我也有同样的问题,你找到解决方案了吗?-看这个。您可以检测应用程序是否来自后台。如果是,则在配置文件上导航到主页我有相同的问题,您找到解决方案了吗?-看这个。您可以检测应用程序是否来自后台。如果是,则在配置文件上导航到主页