изменить родительский заголовок в реакции навигации? - PullRequest
1 голос
/ 02 февраля 2020

У меня есть stackNavigator, который включает в себя один отдельный экран и нижнюю навигацию внутри нижней навигации. У меня есть другой экран, который я хочу, чтобы на каждом отдельном экране снизу менялся родительский экран стека заголовков, но это не работает, я не знаю почему?

вот мой код

App.js ~ Parent 

const AppNavigator = createStackNavigator(
 {
    Register: {
      screen: Register,
      navigationOptions: () => ({
        drawerLockMode: 'locked-closed',
      }),
    },
    TabHome: {
      screen: TabHome, // bottom navigator
    },
},
{
    initialRouteName: 'TabHome',
    title: 'Audix', this title still in every other screens 
}
);


TabNavigation.js

const TabHome = createBottomTabNavigator({
    Home: {
      screen: Home,
      navigationOptions: {
        tabBarLabel: 'Home',
      },
    },
 Library: {
      screen: YourLibrary,
      navigationOptions: {
        tabBarLabel: 'library',
        // title: 'library', not work here !
        // headerStyle: {
        //   backgroundColor: '#00f',
        // },
      },
    },
});

Ответы [ 2 ]

0 голосов
/ 02 февраля 2020

Я решаю, если у кого-нибудь есть объяснение, пожалуйста, скажите мне, и почему stati c не работает, когда его определяют на каждом экране во вкладках

const AppNavigator = createStackNavigator(
    {
      .....
      TabHome: {
          screen: TabHome,
          navigationOptions: ({navigation}) => {
            let {routeName} = navigation.state.routes[navigation.state.index];
            let title;
            if (routeName === 'Home') {
              title = 'Home';
            } else if (routeName === 'Browse') {
              title = 'Browse';
            } else if (routeName === 'Search') {
              title = 'Search';
            } else if (routeName === 'Radio') {
              title = 'Radio';
            } else if (routeName === 'Library') {
              title = 'Library';
            }
            return {
              title,
            };
          },
    }
....
});
0 голосов
/ 02 февраля 2020

Я думаю, что вы можете определить его на каждом экране, если вам нравится это решение.

class Library extends React.Component {
  static navigationOptions = {
    title: 'Home',
  };
  ...
}

И если вы хотите добавить заголовок по умолчанию для других экранов

const AppNavigator = createStackNavigator(
 ...,
 {
   defaultNavigationOptions: {
     title: 'DEFAULT_TITLE'
   }
 }
)
...