Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Como usar de forma Eficiente a navegação Stack e Tab?

Uma dúvida que eu tenho é como implementar a navegação Stack, Tab e Drawer sem causar interferência entre elas na hora de navegar, um exemplo seria a navegação da tela atual para as telas anteriores, seguindo a ordem de acesso dos caminhos que o usuário acessou no aplicativo. Gostaria de saber se tem alguma metodologia para combinar os tipos de navegação, para a melhor experiência do usuário?

1 resposta
solução!

Olá, Carlos! Entendo a sua dúvida e é realmente importante pensar em como combinar diferentes tipos de navegação para proporcionar uma boa experiência ao usuário.

No React Native, utilizando a biblioteca React Navigation, é possível combinar diferentes tipos de navegação, como Stack, Tab e Drawer, sem que haja interferência entre eles. A chave para isso é entender que cada tipo de navegação pode ser encapsulado em um componente de navegação próprio, que pode ser usado dentro de outros componentes de navegação.

Por exemplo, você pode ter um componente de navegação Stack que gerencia a navegação entre as telas de um fluxo específico do aplicativo, e esse componente Stack pode estar dentro de um componente de navegação Tab, que gerencia a troca entre diferentes fluxos do aplicativo.

Vamos a um exemplo prático:

import { NavigationContainer } from '@react-navigation/native';
import { createStackNavigator } from '@react-navigation/stack';
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';

const Stack = createStackNavigator();
const Tab = createBottomTabNavigator();

function MeuPrimeiroFluxo() {
  return (
    <Stack.Navigator>
      <Stack.Screen name="Tela1" component={Tela1} />
      <Stack.Screen name="Tela2" component={Tela2} />
    </Stack.Navigator>
  );
}

function MeuSegundoFluxo() {
  return (
    <Stack.Navigator>
      <Stack.Screen name="Tela3" component={Tela3} />
      <Stack.Screen name="Tela4" component={Tela4} />
    </Stack.Navigator>
  );
}

export default function App() {
  return (
    <NavigationContainer>
      <Tab.Navigator>
        <Tab.Screen name="PrimeiroFluxo" component={MeuPrimeiroFluxo} />
        <Tab.Screen name="SegundoFluxo" component={MeuSegundoFluxo} />
      </Tab.Navigator>
    </NavigationContainer>
  );
}

Nesse exemplo, temos dois fluxos de navegação do tipo Stack (MeuPrimeiroFluxo e MeuSegundoFluxo), cada um gerenciando duas telas. Esses fluxos estão dentro de um componente de navegação do tipo Tab, que permite ao usuário alternar entre os fluxos.

Quando o usuário está navegando dentro de um fluxo, a navegação Stack é que está em controle. Quando o usuário decide mudar de fluxo, a navegação Tab assume o controle. Isso permite combinar os tipos de navegação de forma eficiente e sem interferências.

Espero ter ajudado e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software