1

当前行为

我有一个带有 4 个选项卡的 TabNavigator,每个选项卡都是一个 stackNavigator,现在每个 stackNavigator 只有一个屏幕:主页、地图、预订、个人资料。我正在使用 React Navigation 4。在每个选项卡中,我都将 navigationOption tabBarOnPress 放在屏幕之间导航,因此通过这种方式 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。类似地,当我们在安卓设备上按下后退按钮时,访问屏幕的顺序是 MAPS -> HOME -> PROFILE,如果我们再次按下后退按钮,我们将退出应用程序,将其放入的背景。现在,回到应用程序中,打开的屏幕是 PROFILE,它也是导航堆栈中的第一条路线。

预期行为

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

4

0 回答 0