Estranhei o codigo da aula anterior que terminou conforme a imagem abaixo . Na aula seguinte foi explicado que toda validação passaria para o redux o fez sentido. Peço que desconsidere
Estranhei o codigo da aula anterior que terminou conforme a imagem abaixo . Na aula seguinte foi explicado que toda validação passaria para o redux o fez sentido. Peço que desconsidere
Olá, estudante.
Tudo bem?
Pelo que entendi, você estava com dúvidas sobre a ordem dos comandos no código da aula de React Native, porém conseguiu entender assistindo a aula seguinte. Certo?
Se for isso ok, você pode marcar essa resposta como solução e eu fecho o tópico.
De todo modo, vou tentar explicar o código para ajudar outros estudantes que acessarem esse tópico:
Na imagem que você compartilhou, temos um trecho de código que parece ser uma função de manipulação de evento de login (handleLogin
). Essa função realiza algumas validações iniciais, como verificar se o email ou CPF e a senha foram preenchidos. Após essas validações, ela tenta encontrar um usuário através de um serviço de login (logarService
) e, em seguida, despacha uma ação para o Redux (dispatch(logar(usuarioEncontrado))
).
A parte que pode estar causando confusão é que, após despachar a ação para o Redux, o código verifica se o usuário foi encontrado e, se não, exibe uma mensagem de erro. Se o usuário foi encontrado, ele é definido como o usuário logado (setUsuarioLogado(usuarioEncontrado)
) e uma mensagem de sucesso é exibida, seguida da navegação para a tela 'Home'.
A questão aqui é que, normalmente, quando você despacha uma ação para o Redux, você está lidando com estados globais e efeitos colaterais de forma assíncrona. Isso significa que o estado pode não ser atualizado imediatamente após a chamada dispatch
. Portanto, pode não ser seguro assumir que o usuário foi encontrado imediatamente após a chamada dispatch
.
Em um cenário ideal, você despacharia a ação e lidaria com o resultado da ação (seja sucesso ou falha) através de "selectors" do Redux, ouvindo as mudanças no estado global da aplicação. Isso pode ser feito com hooks como useSelector
ou useDispatch
, ou com métodos de ciclo de vida em componentes de classe, se você estiver usando essa abordagem.
Se a aula seguinte explicou que a validação passaria para o Redux, isso provavelmente significa que a lógica de verificação do usuário e a navegação para a tela 'Home' seriam tratadas em resposta às mudanças no estado global, após a ação ser processada pelo Redux.
Espero que essa explicação tenha esclarecido a ordem dos comandos. Se ainda restarem dúvidas, não hesite em perguntar.
Bons estudos!