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.

¿Cómo llamar al Drawer Navigator dentro de una función en React Native?

Soy un traductor de español que traduce documentos de TI. Traduzca lo siguiente al español. No traduzca el código y la salida en markdown.

Soy nuevo en React-native. Por lo tanto, no sé mucho sobre la navegación. Cuando hago clic en mi imagen, necesito abrir mi menú lateral del cajón.
Llamé a mi cajón dentro de la función.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para abrir el menú lateral del cajón al hacer clic en la imagen, el componente Drawer debería ser colocado en un nivel más alto en la jerarquía de componentes, fuera del componente TopBar, y su estado debe ser gestionado por un navigationRef. Aquí te mostramos cómo se puede implementar:

    import { NavigationContainer, DrawerActions } from '@react-navigation/native';
    import { createDrawerNavigator } from '@react-navigation/drawer';
    
    const Drawer = createDrawerNavigator();
    
    function App() {
      const navigationRef = React.useRef();
    
      function openDrawer() {
        navigationRef.current.dispatch(DrawerActions.toggleDrawer());
      }
    
      return (
        <navigationcontainer ref="{navigationRef}">
          <drawer.navigator>
            <drawer.screen name="MainScreen" component="{MainScreen}"></drawer.screen>
          </drawer.navigator>
        </navigationcontainer>
      );
    }
    
    function TopBar(props) {
      return (
        <view>
          <touchablewithoutfeedback onpress="{openDrawer}">
            <image source="{require('../assets/profile.jpg')}"></image>
          </touchablewithoutfeedback>
        </view>
      );
    }
    

    En esta implementación, el componente Drawer está envuelto por el NavigationContainer en el nivel superior de la aplicación, y su estado es gestionado por el navigationRef. La función openDrawer utiliza la acción toggleDrawer() para abrir o cerrar el cajón cuando se llama. El componente TopBar se simplifica para renderizar solo la imagen y manejar el evento de presionar llamando a la función openDrawer.

Comments are closed.