使用堆栈导航的选项卡导航中的不良行为

时间:2019-07-17 18:13:55

标签: html react-native react-navigation expo

我正在使用“堆栈”导航设置选项卡,并且在尝试更改组件时出现意外行为。当我浏览选项卡时,我想打开堆栈导航的第一个组件。请查看此video,以便您理解我的意思。

我尝试传递道具“ initialRouteName”,但不起作用。这是我的代码:

const familyStackNavigator = createStackNavigator({
  main: { screen: parentFamilyScreen },
  resume: { screen: ResumeChildScreen }
},
{
  mode: 'modal',
  headerMode: 'none',
  initialRouteName: 'main',
});

const parentAppStack = createMaterialBottomTabNavigator({
  family: {
    screen: familyStackNavigator,
    navigationOptions: {
      tabBarIcon: FirstTabIcon,
      title: 'Familia'
    }
  },
  bag: {
    screen: parentBagScreen,
    navigationOptions: {
      tabBarIcon: SecondTabIcon,
      title: 'Bolsillo'
    }
  },
  {
    initialRouteName: 'family',
    activeColor: '#ED0F21',
    inactiveColor: '#333333',
    barStyle: { backgroundColor: 'white' },
    labeled: true
  })

1 个答案:

答案 0 :(得分:0)

您在这里有2个选择:

将您的bottomTabNavigator隐藏在嵌套屏幕中以防止其导航,或者使用react-navigation的导航事件。

这些是文档https://reactnavigation.org/docs/en/navigation-events.html,用于在渲染器中声明它们

这些是文档https://reactnavigation.org/docs/en/navigation-prop.html#addlistener-subscribe-to-updates-to-navigation-lifecycle,用于在屏幕内部添加eventListener

然后您可以使用willBlur来制作屏幕的pop(1)