1
resposta

[Dúvida] Como validar Drawer para aparecer e não aparecer ?

Ao iniciar o app o menu hamburguer não aparecer, porem realizar o login e sair o menu fica aparecendo, como realizar uma validação para não aparecer?

1 resposta

Olá, Mateus.

Tudo bem?

Pelo que entendi, você quer que o ícone do menu hambúrguer não apareça quando o app é iniciado, mas só depois que o usuário realiza o login, certo?

Você pode fazer isso usando uma variável de estado para controlar a visibilidade do menu. No React Native, você pode usar o useState para criar uma variável de estado.

Vamos supor que você tenha uma variável de estado chamada isLoggedIn que controla se o usuário está logado ou não. Você pode usar essa variável para controlar a visibilidade do menu.

Por exemplo:

const [isLoggedIn, setIsLoggedIn] = useState(false);

// No seu código de login
login() {
  // Faça o login
  // ...

  // Depois de logado, você pode setar a variável isLoggedIn para true
  setIsLoggedIn(true);
}

// No seu código de logout
logout() {
  // Faça o logout
  // ...

  // Depois de deslogado, você pode setar a variável isLoggedIn para false
  setIsLoggedIn(false);
}

// No seu código de renderização
render() {
  return (
    <Drawer.Navigator
      screenOptions={{
        drawerStyle: {
          backgroundColor: '#36D6AD'
        },
        // Aqui você usa a variável isLoggedIn para controlar a visibilidade do menu
        drawerIcon: isLoggedIn ? () => (<Image source={require('../assets/pets.png')} style={{width: 24, height: 24}} ></Image>) : null
      }}
    >
      // ...
    </Drawer.Navigator>
  );
}

Nesse exemplo, quando o usuário realiza o login, a variável isLoggedIn é setada para true e o ícone do menu hambúrguer é exibido. Quando o usuário realiza o logout, a variável isLoggedIn é setada para false e o ícone do menu hambúrguer é escondido.

É só uma ideia de como pode ser feito.

Espero ter ajudado. Qualquer dúvida pode mandar aqui de novo. Bons estudos.