React native 如何在应用程序容器中正确堆叠嵌套的导航器?

React native 如何在应用程序容器中正确堆叠嵌套的导航器?,react-native,react-navigation,expo,react-navigation-stack,React Native,React Navigation,Expo,React Navigation Stack,我目前有一个AppContainer,它由一个底部选项卡导航器和一个用于配置文件设置的导航集组成。我试图了解如何正确安排一切,特别是如何在一个选项卡配置文件中嵌套导航,这样我就可以通过两个按钮访问另外两个页面QrCode和EditAccount。如何实现以下输出?我相信我必须以某种方式嵌套配置文件导航 我的标签在下面 家 队列 轮廓 :在这里,我还有两个页面可以访问QRCode和EditAccounts App.js 应用答案后 该解决方案可根据需要提供以下代码: const navigat

我目前有一个AppContainer,它由一个底部选项卡导航器和一个用于配置文件设置的导航集组成。我试图了解如何正确安排一切,特别是如何在一个选项卡配置文件中嵌套导航,这样我就可以通过两个按钮访问另外两个页面QrCode和EditAccount。如何实现以下输出?我相信我必须以某种方式嵌套配置文件导航

我的标签在下面

家 队列 轮廓 :在这里,我还有两个页面可以访问QRCode和EditAccounts App.js

应用答案后

该解决方案可根据需要提供以下代码:

  const navigationOptions = ({ navigation }) => {
      return { 
        headerTitle: 'hello',
        headerStyle: {
          height: '45%',
          backgroundColor: 'black'
        },
        headerTintColor: 'white',
        headerLeft: (
          <TouchableWithoutFeedback 
              style={{ /* Put your style here */}}
              onPress={() => navigation.goBack()} >
              <Ionicons  name="ios-arrow-dropleft" size={32} color="white" />
          </TouchableWithoutFeedback>
        )
      }
    }

    const ProfileNavigator = createStackNavigator({
      Profile: { screen: Profile},
      QR: { screen: GenerateQR, navigationOptions },
      EditAccount: { screen: EditAccount, navigationOptions }
    });

//ADDED
ProfileNavigator.navigationOptions = () => {
  const navigationOptions = {
    header: null,
    headerMode: 'none',
  };
  return navigationOptions;
};


    const AppNavigator = createSwitchNavigator({
      tabs: bottomTabNavigator,
      profile: ProfileNavigator
    })

    const AppContainer = createAppContainer(AppNavigator);
唯一的问题是我不确定如何将标题选项移植到bottomTabNavigator中的选项卡。我为配置文件页面准备了一个自定义组件,使其看起来像此黑条,带有配置文件的按钮图标:

然后,我可以通过按用户图标导航到EditAccounts。但是,当我从EditAccounts导航回profile时,页面显示为navigationOptions标题,如下所示:

我如何正确地应用它,这样我就可以简单地依靠navigationOptions标题并将自定义名称推到其上。在这种情况下,请删除我的自定义组件?

有两种情况

如果您想在访问QR或EditAccount时保持标签 如果你不想做记录的话 更新: 向ProfileNavigator添加导航选项以删除标题

ProfileNavigator.navigationOptions = () => {
  const navigationOptions = {
    header: null,
    headerMode: 'none',
  };
  return navigationOptions;
};

如果你能提供一些帮助,我添加了一个带有后续内容的编辑。我在选项卡可见的情况下应用了您的第一个解决方案。感谢您的帮助。我更新了答案以删除标题。试着看看它对你是否有效我不确定我是否能理解。如何在我的代码中应用它?只需在const ProfileNavigator=createStackNavigator{}之后添加。更新答案上面没有骰子,我也把它添加到了问题中,所以你可以看到,但它仍然会向下推黑条。我甚至删除了黑条,以保留所有的常规项目,但没有运气。我得玩它
const BottomTabNavigator = createBottomTabNavigator({
  ...
  Profile: {
   screen: ProfileNavigator,
  }
})

const ProfileNavigator = createStackNavigator({
  Profile: { screen: Profile},
  QR: { screen: GenerateQR, navigationOptions },
  EditAccount: { screen: EditAccount, navigationOptions }
});

ProfileNavigator.navigationOptions = () => {
  const navigationOptions = {
    header: null,
    headerMode: 'none',
  };
  return navigationOptions;
};

const AppContainer = createAppContainer(BottomTabNavigator);

const BottomTabNavigator = createBottomTabNavigator({
  ...
  Profile: {
   screen: Profile,
  }
})

const AppNavigator = createStackNavigator({
  Tabs: BottomTabNavigator,
  QR: { screen: GenerateQR, navigationOptions },
  EditAccount: { screen: EditAccount, navigationOptions }
})

const AppContainer = createAppContainer(AppNavigator);
ProfileNavigator.navigationOptions = () => {
  const navigationOptions = {
    header: null,
    headerMode: 'none',
  };
  return navigationOptions;
};