1 00:00:02,430 --> 00:00:04,130 Então, estamos fazendo um bom progresso. 2 00:00:04,140 --> 00:00:08,190 Migramos todos os nossos navegadores ou quase todos. 3 00:00:08,190 --> 00:00:12,930 Agora, e o navegador de switch vazio do navegador AQUI. 4 00:00:12,930 --> 00:00:15,210 Bem, você saiu do Navigator, com certeza. 5 00:00:15,240 --> 00:00:21,300 É um Navegador de pilha que é responsável pela tela e por nós. 6 00:00:21,540 --> 00:00:23,610 Bem, e o navegador de switch? 7 00:00:23,610 --> 00:00:26,490 Bem, não precisaremos mais mudar de navegador. 8 00:00:26,520 --> 00:00:31,600 Não existe um pacote de interruptores de barra de reação ou algo do tipo. 9 00:00:31,800 --> 00:00:33,810 Mas voltarei a isso quando precisarmos. 10 00:00:33,960 --> 00:00:42,960 Então, por enquanto, vamos criar nosso navegador fora de linha ou fora da pilha aqui chamando navigator. 11 00:00:42,970 --> 00:00:52,410 Ao chamar create navigator de pilha e exportar nosso constante ano fora do navegador, que novamente é um componente 12 00:00:52,410 --> 00:00:59,480 de reação como antes quando retornamos do navegador de pontos do navegador de pilha. 13 00:00:59,550 --> 00:01:05,850 E lá temos a tela de pontos do navegador do seu escritório e o nome da tela está desativado. 14 00:01:05,850 --> 00:01:12,470 Como temos aqui e fazemos o componente que precisamos, está fora da tela, então é isso. 15 00:01:12,490 --> 00:01:14,680 Agora temos as opções do diabo NAF aqui. 16 00:01:14,680 --> 00:01:22,170 Portanto, as opções de tela no navegador devem ser as opções padrão de soneca e 40 opções específicas da tela. 17 00:01:22,180 --> 00:01:30,160 Vamos dar uma olhada na tela desativada e, se rolarmos para a parte inferior, também temos algumas opções aqui. 18 00:01:30,190 --> 00:01:36,240 Então, vamos exportar nossas opções de tela aqui, como fizemos antes. 19 00:01:36,280 --> 00:01:42,980 Vamos exportar e depois ir para o navegador da loja aqui e nessa tela. 20 00:01:42,980 --> 00:01:50,960 Vamos definir as opções duas opções fora da tela que agora também precisamos adicionar como 21 00:01:51,440 --> 00:02:01,210 uma importação na parte superior da tela. Importamos as opções da tela como opções fora da tela, e é isso. 22 00:02:01,220 --> 00:02:07,400 Agora também temos essa tela de inicialização, mas se tivermos uma visão mais detalhada no passado, apenas apontamos 23 00:02:07,460 --> 00:02:13,470 isso diretamente de dentro do nosso switch Navigator, o que nos deixa com apenas uma pergunta. 24 00:02:13,730 --> 00:02:16,950 E esse navegador de switch? 25 00:02:17,300 --> 00:02:23,040 Agora, no passado, essa seria a primeira tela que você vê uma vez que a maçã carregava, 26 00:02:23,280 --> 00:02:26,420 porque é a primeira tela mais alta nessa configuração. 27 00:02:26,420 --> 00:02:33,590 E então tínhamos lógica naquele contêiner de navegação antigo que criamos anteriormente, onde verificamos se estamos 28 00:02:33,590 --> 00:02:39,800 autenticados e, se isso não fosse verdade, se não estivéssemos autenticados, redirecionaríamos o usuário 29 00:02:39,800 --> 00:02:41,420 para essa tela. 30 00:02:41,420 --> 00:02:44,470 Agora, quando chegaríamos à tela da loja. 31 00:02:44,480 --> 00:02:46,880 Bem, vamos dar uma olhada na tela de inicialização. 32 00:02:47,060 --> 00:02:54,350 Lá, vemos que tentamos autenticar e, aqui, íamos para a tela das lojas quando 33 00:02:54,350 --> 00:02:55,900 logávamos automaticamente. 34 00:02:55,910 --> 00:02:58,410 Essa foi a lógica que escrevemos lá. 35 00:02:58,430 --> 00:03:03,400 Agora isso ainda é uma lógica que faz muito sentido. 36 00:03:03,450 --> 00:03:11,100 Só precisamos ajustá-lo para o novo pacote de navegação. No final, o que podemos ver aqui é que, 37 00:03:11,100 --> 00:03:19,390 no início da tela, estamos tentando bloquear o usuário e, se não conseguirmos encontrar os dados armazenados no dispositivo, vamos para 38 00:03:19,420 --> 00:03:20,830 a página desativada. 39 00:03:20,830 --> 00:03:26,260 Se descobrirmos que os dados sobre o token expiraram ou não chegaremos à página desativada. 40 00:03:26,260 --> 00:03:34,750 Se tivermos sucesso com tudo e tivermos um token válido, em vez disso, iremos para a página da loja 41 00:03:35,110 --> 00:03:41,110 e enviaremos uma ação em que autenticamos o usuário que muda de 42 00:03:41,110 --> 00:03:49,750 estado e nossa loja redux que define os tokens inicialmente no token em nossa loja. agora agora podemos usar isso. 43 00:03:49,760 --> 00:03:58,250 E se nos livrarmos de todas essas chamadas de navegação aqui para que possamos excluí-las ou apenas comentá-las enquanto o 44 00:03:58,340 --> 00:03:59,430 faço aqui. 45 00:03:59,480 --> 00:04:03,920 Então, nos livramos de todas essas ações de navegação. 46 00:04:04,460 --> 00:04:06,890 O que acontece se voltarmos aqui. 47 00:04:06,890 --> 00:04:11,840 Bem, se voltarmos aqui, a execução da disfunção interrompe Indiana corretamente. 48 00:04:11,840 --> 00:04:12,730 Para. 49 00:04:12,830 --> 00:04:17,270 E o que definitivamente não fazemos é que definitivamente não enviamos ação. 50 00:04:17,270 --> 00:04:20,240 Portanto, definitivamente não definimos o token para nada. 51 00:04:20,240 --> 00:04:22,270 Ainda não é. 52 00:04:22,640 --> 00:04:27,800 Isso sempre acontece aqui, a menos que cheguemos ao fundo, caso em que temos um token. 53 00:04:27,890 --> 00:04:30,810 Nós nos despachamos e o token não é nulo. 54 00:04:30,830 --> 00:04:32,750 Eles costumam estar em nossa loja. 55 00:04:32,840 --> 00:04:38,770 Portanto, esse token que gerenciamos com redux é agora ou possui um valor. 56 00:04:38,840 --> 00:04:41,990 Agora eu quero ajustar um pouco a loja redux. 57 00:04:42,140 --> 00:04:48,500 A parte off e todos vocês para o usuário e eu adicionarei uma nova parte de 58 00:04:48,530 --> 00:04:54,070 dados a esse estado, que é a tentativa de todos fazer o login. 59 00:04:54,090 --> 00:04:58,300 Você pode nomeá-lo como quiser e eu o configurarei como false inicialmente aqui. 60 00:04:58,300 --> 00:05:02,290 Quero armazenar se tentamos fazer login no usuário ou não. 61 00:05:02,290 --> 00:05:04,150 Agora, se nos autenticarmos. 62 00:05:04,150 --> 00:05:11,850 Portanto, se despacharmos uma ação com esse identificador, configurarei a tentativa de logon automático como true. 63 00:05:11,890 --> 00:05:19,240 Também adicionarei uma nova ação aqui nas ações desativadas e, para isso, adicionarei 64 00:05:19,240 --> 00:05:31,820 um novo identificador aqui, que nomeei set tentou ou um L para logon automático tentou um L e criará um criador de ação 65 00:05:31,910 --> 00:05:38,070 para isso set tentou um L que não leva argumentos. 66 00:05:38,070 --> 00:05:44,040 E onde eu não retornei meu objeto de ação onde digitar está definido. 67 00:05:44,060 --> 00:05:45,200 Tentei um .. 68 00:05:45,230 --> 00:05:49,020 Você também pode colocá-lo na parte inferior do arquivo, não importa. 69 00:05:49,020 --> 00:05:50,330 Agora, por que estou fazendo isso? 70 00:05:50,390 --> 00:05:51,460 Você verá isso no segundo. 71 00:05:51,530 --> 00:05:55,820 Vamos voltar para o redutor, desligá-lo e lidar com este novo gabinete. 72 00:05:55,820 --> 00:05:58,960 O conjunto de casos tentou um l. 73 00:05:59,000 --> 00:06:06,620 Certifique-se de que você também importa a partir de ações de agora em qualquer ano; retornamos um novo estado em que copio o estado 74 00:06:06,620 --> 00:06:13,250 antigo e onde eu disse que tentei o log automático como true, para que o token ainda possa ser conhecimento, apenas 75 00:06:13,250 --> 00:06:14,750 defina isso como true. 76 00:06:14,750 --> 00:06:19,490 Agora, minha ideia é que eu despache essa ação aqui na tela de inicialização. 77 00:06:19,610 --> 00:06:25,790 Em todos os cenários em que fomos anteriormente para a tela desativada, tentamos fazer login, mas 78 00:06:25,790 --> 00:06:27,280 não obtivemos sucesso. 79 00:06:27,380 --> 00:06:38,650 Então sim, eu vou despachar o conjunto, tente A. EU. portanto, certifique-se de acessá-lo em suas ações desativadas, 80 00:06:39,040 --> 00:06:44,270 assim e nos dois casos em que navegamos anteriormente para a tela desativada. 81 00:06:44,320 --> 00:06:48,160 Então agora temos esse novo campo e redux e por que estou fazendo isso. 82 00:06:48,160 --> 00:06:49,840 Por que isso é útil? 83 00:06:49,840 --> 00:06:55,480 Bem, porque com a navegação de reação 5 não há mais o navegador de comutadores, porque não precisamos mais 84 00:06:55,810 --> 00:06:58,900 dele, pois agora gerenciamos toda a configuração da rota. 85 00:06:59,010 --> 00:07:06,920 Por que os componentes podem renderizar componentes dinamicamente para que eles tenham efeito ou não, 86 00:07:06,920 --> 00:07:14,240 assim, no navegador de aplicativos onde eu renderizo o navegador de meus produtos. 87 00:07:14,260 --> 00:07:20,820 Agora é hora de adicionar todos esses navegadores a serem configurados e, em seguida, decidir qual 88 00:07:20,830 --> 00:07:24,230 navegador deve ser renderizado no navegador da loja. 89 00:07:24,330 --> 00:07:27,300 Agora, na verdade, quero importar esse navegador 90 00:07:31,660 --> 00:07:40,180 de loja aqui, que exportarei como uma constante novamente e, em seguida, aqui um navegador de aplicativo, importo o navegador 91 00:07:40,270 --> 00:07:41,320 de loja. 92 00:07:41,320 --> 00:07:42,850 Esse é o nosso sorteio de um navegador. 93 00:07:42,850 --> 00:07:45,990 Tenha isso em mente e é isso que eu quero processar aqui. 94 00:07:46,090 --> 00:07:48,090 Navegador da loja. 95 00:07:48,240 --> 00:07:55,020 Portanto, isso é basicamente o que eu quero renderizar se estivermos presos à nossa loja anteriormente, e foi o 96 00:07:55,020 --> 00:07:59,070 que mapeamos para essa chave de loja no navegador de switch. 97 00:07:59,070 --> 00:08:02,350 Agora todos precisamos do navegador desativado na tela de inicialização. 98 00:08:02,400 --> 00:08:04,190 Então, aqui está um navegador de aplicativos. 99 00:08:04,290 --> 00:08:09,290 Importarei o navegador desativado e esses são os únicos dois navegadores que preciso importar aqui. 100 00:08:09,330 --> 00:08:15,060 Portanto, você pode remover a declaração de exportação de todos os outros navegadores aqui em nosso arquivo de navegador da loja, mas 101 00:08:16,080 --> 00:08:20,300 o que também precisará importar para o navegador de aplicativos é a tela de inicialização agora. 102 00:08:20,520 --> 00:08:30,520 Então, vamos importar a tela de inicialização das telas de inicialização e agora aqui temos o navegador da loja. 103 00:08:30,520 --> 00:08:40,010 Temos o off Navigator como alternativa e também temos uma tela de inicialização profunda, agora ele renderizará apenas um 104 00:08:40,010 --> 00:08:42,430 dos arquivos gratuitos e. 105 00:08:42,540 --> 00:08:45,410 E é aqui que agora podemos reutilizar o redux. 106 00:08:45,480 --> 00:08:51,000 Copiarei use selector porque as informações do site sobre o token que também 107 00:08:51,000 --> 00:08:57,770 estou interessado em aprender sobre o tentaram todos os campos de logon que adicionei ao estado off aqui. 108 00:08:57,780 --> 00:09:05,770 Esse novo campo acrescentou que agora eu tenho acesso a isso aqui no meu arquivo do navegador de aplicativos e armazenado 109 00:09:05,810 --> 00:09:08,280 e tentei fazer o logon constante. 110 00:09:08,280 --> 00:09:15,710 Agora eu sei que quero renderizar para fazer compras se tudo isso é verdade e como é que podemos fazer isso se estivermos autenticados. 111 00:09:15,720 --> 00:09:20,000 Eu sempre procuro fazer compras, não me importo com mais nada. 112 00:09:20,160 --> 00:09:28,290 Agora, eu quero renderizar o navegador desativado, se houver uma das falhas dele, e ainda tentamos fazer o 113 00:09:28,290 --> 00:09:36,540 login, porque, se ainda não tentamos fazer o login automaticamente, na verdade, eu quero renderizar a tela de inicialização, 114 00:09:36,540 --> 00:09:42,700 se não estivermos autenticados e o fizemos ainda não tente nosso log automático. 115 00:09:43,100 --> 00:09:47,180 Bem, então não sabemos se o usuário pode ser um autenticador ou não. 116 00:09:47,180 --> 00:09:54,580 Portanto, nesse caso, quero renderizar para a tela de inicialização agora, quero rapidamente um PDV lá e verifique se estamos todos na 117 00:09:54,700 --> 00:10:00,820 mesma página e todos entendemos por que agora estamos usando isso em vez do navegador de comutador. 118 00:10:00,830 --> 00:10:05,550 Agora, antes de mais nada, não há mais navegador de chaves na navegação de reação 5. 119 00:10:05,710 --> 00:10:07,720 Mas por que foi removido? 120 00:10:07,720 --> 00:10:15,010 Bem, como agora configuramos tudo com componentes, podemos usar ferramentas de reação regulares para renderizar um 121 00:10:15,010 --> 00:10:16,540 componente ou não. 122 00:10:16,540 --> 00:10:21,850 Se você não está pensando em navegação, mas em uma tela normal, na qual talvez 123 00:10:21,850 --> 00:10:28,420 você tenha um texto que deseja mostrar apenas condicionalmente, usaria algum estado e, em J, X, às vezes, renderizaria 124 00:10:28,600 --> 00:10:31,990 um texto com uma expressão ternária, por exemplo . 125 00:10:32,110 --> 00:10:37,660 E estamos fazendo o mesmo aqui com nossa configuração de rota, com nossas configurações 126 00:10:37,660 --> 00:10:43,700 de tela, aqui, a configuração da tela que temos aqui é diferentes navegadores e, na tela 127 00:10:43,750 --> 00:10:50,770 de inicialização, no final, todas as coisas que reagem devem estar cientes de trazer algo para o tela e 128 00:10:50,800 --> 00:10:56,830 reagir à navegação nos bastidores levantamento pesado empoeirado interpretando nossa configuração e certificando-se de que o 129 00:10:56,830 --> 00:10:59,440 componente correto seja renderizado na tela. 130 00:10:59,440 --> 00:11:09,210 Agora, se usarmos desativado e tentarmos fazer logon automático para controlar qual navegador é realmente renderizador ao reagir usando 131 00:11:09,220 --> 00:11:17,230 uma expressão ternária, garantiremos que, por exemplo, desativado não seja verdade, não há como as telas 132 00:11:17,230 --> 00:11:21,610 do navegador de compras trazido para a tela. 133 00:11:21,610 --> 00:11:22,230 Por quê. 134 00:11:22,270 --> 00:11:28,840 Como o componente navegador de loja que mantém nossa configuração raiz relacionada à loja, nossa configuração de 135 00:11:29,260 --> 00:11:33,400 tela esse componente é renderizada apenas se for office true. 136 00:11:33,400 --> 00:11:39,840 Portanto, não há como uma tela relacionada à loja ser renderizada na tela se se off for falso. 137 00:11:40,090 --> 00:11:47,560 Realmente faça essa comparação com elementos de texto normais ou caixas normais em uma tela que você renderiza condicionalmente. 138 00:11:47,560 --> 00:11:54,000 Estamos fazendo o mesmo aqui, mas não com caixas e texto, mas com toda a nossa pilha de navegação. 139 00:11:54,040 --> 00:12:00,170 É isso que fazemos aqui e, com tudo isso, se salvarmos e 140 00:12:04,210 --> 00:12:12,860 executarmos novamente no Android, acabaremos fora da tela e se eu recarregar isso e reconstruído, novamente acabaremos lá. 141 00:12:13,630 --> 00:12:16,450 Agora, se eu tentar entrar aqui, agora 142 00:12:21,790 --> 00:12:23,930 realmente tenho um problema aqui. 143 00:12:24,100 --> 00:12:30,530 Recebo um erro ao navegar com uma carga útil da loja que não foi bem tratada. 144 00:12:30,540 --> 00:12:32,960 Isso agora faz sentido se você pensar sobre isso. 145 00:12:32,970 --> 00:12:35,440 Não temos mais nenhum navegador de switch. 146 00:12:35,490 --> 00:12:40,170 Em vez disso, apenas controlamos qual navegador queremos renderizar sob quais circunstâncias. 147 00:12:40,350 --> 00:12:42,410 Então, por que estamos recebendo isso? 148 00:12:42,420 --> 00:12:44,490 Você pode descobrir e consertar por conta própria. 149 00:12:44,580 --> 00:12:48,330 Caso contrário, faremos isso juntos. Vamos consertar juntos na próxima aula.