使用DrawerNavigator和BottomTabNavigator如何放置DrawerIcon

时间:2018-11-01 04:14:29

标签: reactjs react-native navigation-drawer react-navigation react-native-tabnavigator

我在DrawerNavigator中使用主菜单。 在屏幕内部,我使用BottomTabNavigator。

我这样放置每个屏幕的DrawerIcon:

....
export default class HomeScreen extends React.Component {
...

static navigationOptions = {
    drawerIcon: ({ tintColor }) => (
      <Icon name="home" style={{ fontSize: 24, color: tintColor }} />
    )
  }

...

}

但是,在我使用TabNavigator的屏幕上,我不导出类,而是导出createBottomNavigator,如下所示:

class MetasSemanaAnterior extends React.Component {...}

class MetasScreen extends React.Component {...}

export default createBottomTabNavigator({
    MetasMain: MetasScreen,
    MetasAnterior: MetasSemanaAnterior,
});

我不知道将DrawerNavigator的navigationOptions放在哪里!

请帮助! TY

2 个答案:

答案 0 :(得分:0)

不确定这是否是您要寻找的,但是如果我正确理解的话,可以尝试一下。 您可以参考https://reactnavigation.org/docs/en/navigation-options-resolution.html以获取有意义的信息。

const tabNavigator = createBottomTabNavigator({
    MetasMain: MetasScreen,
    MetasAnterior: MetasSemanaAnterior,
});

tabNavigator.navigationOptions = () => {

}

export default tabNavigator;

答案 1 :(得分:0)

我以这种方式解决了

在主屏幕上创建我的“抽屉导航”的

,我设置了DrawerIcon。这样,即使我未在子屏幕中设置图标,该图标仍会出现

在创建DrawerMenu的位置设置DrawerIcon:

    const AppDrawerNavigator = createDrawerNavigator({
      ChatBot: {
        screen: HomeScreen
      },
      Profile: {
        screen: ProfileScreen
      },
      METAS: {
        screen: MetasScreen,
        navigationOptions: {
//here i set the drawerIcon
          drawerIcon: ({ tintColor }) => { return (<Icon name="flag" style={{ fontSize: 24 }} />) }
        }
      }
    }
相关问题