Um momento
Aula 21
Cursos / Pesquisa de Imagens com o React Native
Implementação do Botão de Voltar para a Lista de Resultados – Navigator Pop

Summary

Resumo da Transcrição

Neste trecho, o autor discute diferentes abordagens para gerenciar a navegação em um aplicativo, especificamente ao lidar com um componente chamado ImageDetail.

Principais Soluções Apresentadas

  1. Passando o Navegador como Propriedade:

    • A primeira solução sugerida é passar o navegador diretamente para o componente ImageDetail.
  2. Usando Has Props:

    • A segunda solução é utilizar o método Has Props para injetar o navegador, permitindo definir uma função dentro do ImageDetail que será chamada quando o botão de voltar for clicado.
  3. Propriedade onPressBack:

    • Solução Escolhida: O autor opta por passar uma função chamada onPressBack para o ImageDetail.
    • Essa função é associada ao método pop do navegador, permitindo que o botão de voltar chame essa função ao ser clicado.

Detalhes da Implementação

  • O componente ImageDetail deve receber a função onPressBack através de suas props.
  • Quando o botão de voltar é acionado, essa função é chamada, o que faz com que a cena atual seja removida e o aplicativo retorne à cena anterior na pilha de navegação.

Comportamento da Navegação

  • A navegação é tratada como uma pilha (stack), onde:
    • Um push adiciona uma nova cena.
    • Um pop remove a cena atual e retorna para a anterior.

Testes e Estilo

  • O autor realiza testes ao clicar no botão de voltar e confirma que a navegação funciona conforme esperado.
  • Finaliza mencionando a adição de estilo ao botão de voltar.

Observação

O autor convida os ouvintes a compartilharem outras soluções nos comentários, promovendo a interação e aprendizado colaborativo.

Video Transcript

Então, a gente poderia fazer o mesmo e passar o navegador com uma propriedade aqui, para o image detail, dessa maneira aqui. Essa é uma das soluções desse problema. Tem também outras maneiras, por exemplo, em vez de navegador aqui, você pode passar o navegador via Has Props. Se lembra do Home, a gente deu um push e passou essas propriedades. A gente poderia também passar o navegador aqui. Desse jeito, aí dentro do image detail, a gente definiria uma função que quando clicar no botão de voltar, iria chamar o desse.propsnavigator.pop, né? Aqui dentro, desse cara aqui. Desse caso, não tenha desse, porque é só props. Tá bom? Essa é a segunda maneira de resolver esse problema. Mas eu não vou usar essa. Eu vou usar uma terceira solução que eu acabei de pensar aqui. Você pode usar qualquer uma, tá bom? E se você conhecia outra solução, por favor poste como um comentário. Então, eu não vou passar o navegador como props aqui e nem vou passar o navegador como os props nas rotas aqui, no render scene. O que eu vou fazer? Eu vou passar na verdade, uma propriedade que vou chamar talvez de onPressBack, que vai ser uma função que será passada com a propriedade do image detail que eu posso chamar quando eu clicar no botão de voltar. E nessa função, na verdade, eu só quero que o navegador pop. Só quero que desempeire. Desse caso, eu vou passar na navegueira o ponto pop. Entendeu? Então, eu tô passando a propriedade chamada onPressBack para o componente image detail. E a propriedade, na verdade, é uma função. Eu tô passando a função pop, que é do navegador. Então, se eu fazer deste jeito, eu vou voltar para o image detail aqui. E note que a gente tem o props aqui, do image detail, o componente vai passar do props. Dentro das props, tem as propriedades que foram injetadas. E nesse caso aqui no tautable highlight, quando eu clicar a voltar, eu quero que chamem essa função aqui. A função foi dada com a propriedade onPressBack, né? Mas como eu tô usando a função de flash, eu tenho que botar os parânteses para chamar a função. Tá bom? E quando eu faço o clique no voltar ou do toque, vai chamar a função onPressBack, que na verdade é a função navegueira o ponto pop. Vamos ver o que acontece. Vamos salvar e voltar aqui. Tá atualizando. Eu vou buscar o gato. Eu vou clicar num, clicar a voltar. Oh, o que aconteceu? Vamos ver. OnPressBack. Ah, eu esqueci de refiniciar o props, né? Porque não tem função onPressBack definida aqui, localmente. Então, tá dentro do props. Ponto onPressBack. Note que eu não tenho o des, porque é um componente funcional, né? Functional component, que é definido como variável aqui const. Vamos atualizar, deixa eu salvar. Ele vai automaticamente atualizar aqui e vamos fazer uma busca de novo. Ok, vamos ver. Para, melhores cuidados. Vamos clicar a voltar aí. Voltou, né? Vamos tentar outro. Clicar a voltar, voltamos. Então, o pop, ele descarta a cena que a gente estava e volta para a anterior da pedra, né? Da stack. Você sabe que a navegação aqui é feita como uma stack, né? Uma pedra. Stack. Pide em português. Então, a gente dá um push quando a gente clica em um do itens. Então, tá dentro da stack, tem primeiro o home, aí demos um push e no topo da stack tem o image detail. Topo. Aí, quando a gente dá um pop, desempira, a gente remove esse cara e fica só com o home. O home agora é o topo, né? Entendeu? Vou remover isso. Salvar, então. Tá tudo bem agora. Vamos só dar um estilo para esse botão voltar, só para terminar.
Nenhum comentário ainda (loading...)
Nenhum comentário ainda (loading...)
Gostou da aula? 😆👍
Apoie nosso trabalho com uma doação: