es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Combinar StackNavigator y TabNavigator en React Native.

En primer lugar, en mi navegador de pestañas tengo 3 pantallas:
– StartRun
– Activity

Quiero agregar un Navegador de Pila desde la pantalla StartRun:

  • Running

Cuando estoy en “StartRun”, hago clic en un botón “presionar y ir a la página de ejecución” a la pantalla Running. Pero en la pantalla Running todavía puedo ver el navegador de pestañas.

¿Cómo combino el Navegador de Pila y el Navegador de Pestañas juntos?

Aquí está mi código:

const RunStackNavigator = createStackNavigator({
  StartRun: {
    screen: StartRun,
  },
  Running: {
    screen: Running,
  },
});

const HomeTabNavigator = createBottomTabNavigator({
  StartRun: {
    screen: RunStackNavigator,
  },

  Activity: {
    screen: Activity,
  },
});

Quiero algo como esto:

View post on imgur.com

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para lograr el comportamiento deseado donde el Stack Navigator de la pantalla StartRun transiciona a la pantalla Running, mientras muestra el Tab Navigator en la parte inferior de la pantalla, deberás modificar el código de la siguiente manera:

    const RunStackNavigator = createStackNavigator({
      StartRun: {
        screen: StartRun,
      },
      Running: {
        screen: Running,
      },
    });
    
    const HomeTabNavigator = createBottomTabNavigator({
      StartRun: {
        screen: RunStackNavigator,
      },
      Activity: {
        screen: Activity,
      },
    });
    
    export default createAppContainer(
      createStackNavigator(
        {
          Main: { screen: HomeTabNavigator },
          Running: { screen: Running },
        },
        {
          mode: 'modal',
          headerMode: 'none',
          navigationOptions: {
            gesturesEnabled: false,
          },
        }
      )
    )
    

    Lo que hemos hecho aquí es:

    1. Hemos creado el Stack Navigator como antes, con dos pantallas: StartRun y Running.
    2. Hemos creado el Tab Navigator como antes, con dos pantallas: StartRun y Activity.

    3. Hemos envuelto el Tab Navigator dentro de un Stack Navigator. Esto significa que el Tab Navigator ahora es un hijo del Stack Navigator, y podemos usarlo para navegar entre las pantallas.

    4. Hemos agregado una nueva pantalla al Stack Navigator llamada “Main”, que es el Tab Navigator. Esta pantalla no tiene encabezado, y hemos deshabilitado los gestos para evitar deslizar hacia atrás a la pantalla anterior.

    5. Hemos agregado una nueva pantalla al Stack Navigator llamada “Running”, que es un hijo del Stack Navigator en la pantalla StartRun. Esto significa que se mostrará como una pantalla modal cuando naveguemos hacia ella, y no tendrá el Tab Navigator en la parte inferior.

    6. En la pantalla StartRun, hemos agregado un botón que navega a la pantalla Running usando el Stack Navigator.

    Al hacer todo esto, hemos logrado el comportamiento deseado donde el Stack Navigator de la pantalla StartRun transiciona a la pantalla Running, mientras muestra el Tab Navigator en la parte inferior de la pantalla.

Comments are closed.