首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >React- navigator : switch导航器中的嵌套堆栈导航器和tab导航器产生2个标头

React- navigator : switch导航器中的嵌套堆栈导航器和tab导航器产生2个标头
EN

Stack Overflow用户
提问于 2019-03-20 07:17:52
回答 1查看 4.1K关注 0票数 0

我在我的react原生应用程序中结合使用了tab导航器、堆栈导航器和switch nagivator以及react-navigation。请注意,我必须将tab导航器的每个屏幕都放在它自己的堆栈导航器中,以便使用内置的标题功能。

这些功能可以正常工作。但我最终得到了FeedProfile页面的两个标题,如下所示:

我只希望每个屏幕都有自己的标题和评论屏幕有一个后退按钮。我知道代码不是很干净,把所有这些导航器放在彼此里面会占用很多开销。那么,实现这一目标的最佳方法是什么呢?

App.js

代码语言:javascript
复制
const FeedScreenStack = createStackNavigator({
  FeedStack: {
    screen: feed,
    navigationOptions: {
      headerTitle: "Feed"
    }
  }
});

const ProfileScreenStack = createStackNavigator({
  ProfileStack: {
    screen: profile,
    navigationOptions: {
      headerTitle: "My Profile"
    }
  }
})

const TabStack = createBottomTabNavigator({
  Feed: { screen: FeedScreenStack },
  Profile: { screen: ProfileScreenStack }
});

const AppStack = createStackNavigator({ 
  Tab: TabStack,
  Comments: { 
    screen: comments, 
    navigationOptions: {
      headerTitle: "Comments"
    },
  }
});

const MainStack = createSwitchNavigator(
  {
    Home: AppStack,
    Auth: AuthStack
  },
  {
    initialRouteName: 'Home'
  }
);

const AppContainer = createAppContainer(MainStack);
EN

回答 1

Stack Overflow用户

发布于 2019-03-20 07:54:38

尝试像这样修改AppStack:

编辑:

我忘了把它包含在navigationOptions中。试试看。

代码语言:javascript
复制
const AppStack = createStackNavigator({ 
  Tab: {
    screen:TabStack,
    navigationOptions: () => ({
      headerMode: 'none',

      // or this

      header: null
     })
  },
  Comments: {
    screen: comments, 
    navigationOptions: {
      headerTitle: "Comments"
    },
  }
},
);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55251336

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档