Динамически изменять заголовок заголовка в React Navigation 5.x - PullRequest
0 голосов
/ 29 мая 2020

Я недавно обновил свой проект, чтобы он реагировал на навигацию 5.x. В более ранней версии мы задавали заголовок заголовка следующим образом:

static navigationOptions = ({ navigation }) => ({
        title: 'find',
});

Это не работает в React Navigation 5.x. Пожалуйста, предложите.

Ответы [ 2 ]

0 голосов
/ 08 сентября 2020

Вы можете сделать это двумя способами;

1: Установите options как переменную с вашего экрана и сохраните текущий код:

<Stack.Screen
  name="Label"
  component={Component}
  options={Component.navigationOptions}
/>

// component
static navigationOptions = {
  title: 'find',
};

2: Используя setOptions в вашем компоненте:

<Stack.Screen
  name="News"
  component={News}
  options={{
    title: 'Default',
  }}
/>

// component
this.props.navigation.setOptions({title: 'find'});
0 голосов
/ 29 мая 2020

Эй, вы обязательно должны проверить это: https://reactnavigation.org/docs/screen-options-resolution/

Здесь вы можете увидеть, как установить заголовок для каждой вкладки и каждого стека. Почитай закинул страницу и посмотри на это прикол c:

function getHeaderTitle(route) {
  // Access the tab navigator's state using `route.state`
  const routeName = route.state
    ? // Get the currently active route name in the tab navigator
      route.state.routes[route.state.index].name
    : // If state doesn't exist, we need to default to `screen` param if available, or the initial screen
      // In our case, it's "Feed" as that's the first screen inside the navigator
      route.params?.screen || 'Feed';

  switch (routeName) {
    case 'Feed':
      return 'News feed';
    case 'Profile':
      return 'My profile';
    case 'Account':
      return 'My account';
  }
}
...