Agora, vimos a navegação básica com navegar e navegar é a ferramenta mais importante, mas na
verdade, ao estar dentro de uma tela, de um componente carregado com a ajuda de um navegador de
pilha, você tem alternativas para navegar.
Você também pode usar push em vez de navegar, embora isso não use um objeto Javascript, mas use apenas
o nome da rota aqui;
nesse caso, categoria refeições como primeiro argumento e, com isso, você terá o mesmo comportamento de antes.
A questão, é claro, é por que você usaria isso.
O número um é um pouco mais curto do que navegar porque você não está
passando um objeto, mas
esse não é o motivo principal. Em vez disso, usar push aqui pode ser útil se você quiser acessar uma página em que você já esteja.
Agora, deixe-me mostrar o que eu quero dizer.
Se eu reverter isso e navegar para categorias aqui, então para a tela de categoria
que é a tela em que eu já estou. Se eu fizer isso com navegar, o que você verá
é que nada acontece se eu tocar nessa.
Agora, se eu usar o push e, portanto, passar categorias como meu primeiro argumento, porque é assim que o push funciona, você
verá que agora isso funciona e eu posso ir para a mesma tela repetidamente e é
empurrado para a mesma pilha e de novo.
Agora, é claro, você pode se perguntar por que eu iria querer empurrar a tela que eu já estou exibindo novamente.
Agora, em muitos aplicativos, talvez você não precise disso, mas digamos que você esteja criando um aplicativo como o Dropbox, no qual
existem pastas entre
as quais os usuários podem navegar; se
você estiver em uma pasta, deseja ir para outra pasta.
Agora, cada pasta é tecnicamente a mesma tela, apenas com conteúdo diferente carregado nela. Nesse caso, convém ir da pasta A para B,
que usa o mesmo componente, a mesma tela no final, mas com conteúdo diferente; nesse caso,
você pode usar o push para ainda poder empurrar a nova tela que é a mesma
tela na pilha e carrega a mesma tela com conteúdo diferente, esse seria um cenário em que
você poderia precisar disso. Neste aplicativo, não precisamos
dele, portanto não há necessidade de envio, mas você tem isso em cenários em que a
navegação não o
levaria a essa tela, o envio sempre
o levará quando estiver dentro de um navegador de pilha. Aqui, no entanto, vou reverter isso para navegar, que pega um objeto com um nome de
rota que aponta para categorias, porque aqui, absolutamente não precisamos de push, ou seja, refeições de categoria. Portanto, isso serve para este aplicativo, agora você também
tem outras opções
de navegação explícitas, digamos que na tela
da categoria refeição, você deseja poder voltar.
Bem, é claro, podemos voltar com a ajuda desse botão Voltar, mas também não é tão atípico
que, em alguns aplicativos, você tenha alguma outra coisa que seus usuários possam fazer onde quiser levá-los de
volta, por exemplo, digamos você está em uma página onde pode definir algumas
configurações e, quando clicar no botão Salvar, deseja salvar essa configuração e também sair da tela.
Agora, nesse cenário, convém ativar uma navegação traseira manualmente e não espere o usuário pressionar o botão
voltar, pois isso pode forçar o usuário a pressionar primeiro um botão salvar e depois voltar
manualmente, o que não é a melhor experiência do usuário.
Então, aqui, eu meio que simulo isso apenas com um botão voltar aqui em nossa tela, portanto,
em nosso código jsx e quando pressionamos isso, quero poder voltar, quero manualmente acionar
uma navegação para trás.
Você pode fazer isso com a ajuda do suporte de navegação, porque lá, você tem um método de retorno
que pode chamar e isso faz exatamente o que parece.
Se salvarmos isso e eu for para as refeições, se clicar em voltar, reproduziremos a navegação de volta.
Tecnicamente, isso sai da tela em que estamos e volta
para a tela anterior na pilha. Como alternativa para voltar, se você estiver em um navegador de pilha,
também terá pop, que faz o que o nome
implica, aparece a tela atual na pilha e, como você sempre vê a tela superior no seu dispositivo, isso também reproduz a navegação
traseira, portanto, essa é uma alternativa para voltar. A diferença é que o pop só pode ser usado se
você estiver
em um navegador de pilha. Voltar também está disponível em outros navegadores que usaremos mais adiante neste módulo.
Às vezes, você também desejará voltar até o
componente pai, digamos aqui no MealDetailScreen. Aí também podemos adicionar um botão
e nesse botão aqui, quero voltar às minhas
categorias, digamos e, portanto, adicionarei onPress e nessa função aqui, posso usar adereços de navegação pop, certo,
porque isso nos leva de volta .
Bem, o problema com isso, é claro, é que me leva de volta, mas apenas para a tela antes dessa tela, para a tela.
Eu vim de. Eu quero voltar para a tela de
categorias, então eu quero pular duas telas ao mesmo tempo.
Para isso, você abre pop-up, esse é
outro método que você pode chamar, que simplesmente aparece em todas as telas da pilha e o leva de
volta à tela raiz.
Então, se você clicar aqui, obteremos a animação de volta e voltaremos à nossa tela raiz, que
neste caso é a
tela de categoria, então essa é uma alternativa aqui. Agora, com isso, há apenas uma
última ação de navegação possível que você pode precisar. Digamos que na tela de categorias, você deseja ir
para a categoria refeições, mas não deseja adicioná-lo à pilha, mas deseja substituir seu componente atual na pilha por ele, para que ainda
exista apenas uma tela a pilha, mas essa tela é uma nova página, o que também significa
que você não poderá
voltar à nova página porque a pilha ficaria vazia a partir de então, o que
significa que seu aplicativo é fechado.
Portanto, caso queira fazer isso, você pode usar substituir. Substitua também, como o push
usa apenas um identificador como este e o comando também o leva para a nova tela; no entanto, ele não reproduz animação para
frente; em vez disso, salta instantaneamente para lá e você não obtém o botão Voltar automaticamente porque
a pilha está vazia, caso contrário, esse é o única tela.
Isso pode ser usado, por exemplo, em uma tela de login em que um usuário fez login e, uma
vez logado, o usuário não poderá voltar à
tela de login, então você pode simplesmente substituir a tela de login pelo seu login na tela com o
perfil do usuário ou algo assim.
Se você ainda tentar voltar, nada acontece porque você não pode voltar, não
há mais nada na pilha. Portanto, é claro que substituir
não é absolutamente o que precisamos neste aplicativo, eu só queria introduzi-lo aqui, embora veremos mais padrões disponíveis e como você
vai e volta entre as páginas e quando você pode substituir ou alternar as telas
assim em todo este módulo, só queria apresentá-lo já neste momento, ainda aqui, voltarei a navegar
com o nome da rota apontando para as refeições da categoria. E com isso, você teve uma visão geral de alguns dos métodos básicos
de navegação que permitem alternar entre as telas. Como mencionei, é claro que veremos muitos padrões
em ação ao longo deste módulo, por enquanto é isso e eu diria que, fora do caminho,
é hora de realmente adicionar um pouco de carne a esse aplicativo, verifique se é um aplicação mais realista e não apenas
uma aplicação fictícia como é atualmente.