EXPO проблема в React Navigation 5, почему задняя верхняя кнопка «<—" теперь всегда по умолчанию справа?

#react-native #navigation #expo #react-navigation #stack-navigator

#react-native #навигация #expo #реакция-навигация #stack-navigator

Вопрос:

Проблема EXPO SDK 39 в React Navigation 5, почему задняя верхняя кнопка «<—» теперь всегда находится по умолчанию в правом верхнем углу, а не в обычном положении слева?

И как установить параметры навигации по стеку или вкладкам по умолчанию на всех страницах стека или вкладок?

неправильное место: неправильное место

нужное место: В нужном месте, как установить параметры по умолчанию?

  export default function Rotas({navigation}) {
  return (
    <NavigationContainer>
      <Stack.Navigator
      options={{
        headerTitleAlign: 'center',
        headerLeftContainerStyle: {
          backgroundColor: 'red',
          transform: [{ rotate: '180deg' }],
          left: 308,
          
        }
        }} 
      > 
        <Stack.Screen /* Esta sera a homme screen, a primeira tela a ser carregada ao abrir o aplicativo */
        options={{
          
          title: 'Sweet Homme',
          headerTintColor: 'white',  /* Cor do texto */
          headerTitleAlign: 'center',
          headerStyle: {
            backgroundColor: 'purple', // Cor de fund0
           

          } 
        }}
        style={{color: 'red'}} name="Home" component={Home} />
        <Stack.Screen 
        options={{
          title: 'WRONG PLACE >>>',
          headerTintColor: 'aquamarine',  /* Cor do texto */
          headerTitleAlign: 'center',
        
          headerStyle: {
            backgroundColor: 'purple', // Cor de fund0
          } 
        }}

        name="Nice" component={Nice} />
        {/* Aplicar esse options no stack screen para fazer a seta voltar não ficar no lado direito do app...
        usando o stack navigator... */}
        <Stack.Screen name="Tela3" component={Tela3}
        options={{
        headerTintColor: 'blue',
        headerTitleAlign: 'center',
        headerLeftContainerStyle: {
          backgroundColor: 'purple',
          transform: [{ rotate: '180deg' }],
          left: 308,
          
        }
        }} />
    {/* Cada Stack.Screen é uma tela, uma pagina, a primeira pagina que o index 
    vai abrir é a que esta no topo desta função. */}
      </Stack.Navigator>
    </NavigationContainer>
  );
}
  

Ответ №1:

Удалите эти стили

 transform: [{ rotate: '180deg' }],
left: 308,
  

Итак, что происходит, так это то, что вы являетесь rotating контейнером заголовка, из-за чего кнопка «Назад» перемещается вправо.

<—— эта кнопка, повернутая на 180 градусов, станет ——>

Вы можете использовать headerRight для добавления пользовательского компонента справа от заголовка, если это то, что вам нужно.

Пожалуйста, прочитайте документы здесь https://reactnavigation.org/docs/header-buttons /

Комментарии:

1. Привет, спасибо за ответ! Не могли бы вы дать небольшое объяснение? Это помогло бы OP и будущим читателям 🙂

2. Привет, мой друг, спасибо за вашу помощь, но я только что сделал это, чтобы решить эту проблему, существует ли другой способ исправить это, например, изменить положение кнопки возврата заголовка?

3. @FR27Dreamer Я улучшил свой ответ, пожалуйста, проверьте, решит ли это вашу проблему.