Flutter: BLoC e contextos de navegação

Hoje vou mostrar como podemos passar o BLoC para a próxima tela através do navegador se não disponibilizarmos o MultiBlocProvider como provedor global de todos os BLoC.

O exemplo completo que você pode observar no repositório git .
Eu começaria pelo caso de navegação:

Neste caso, temos dois objetos BuildContext diferentes, o primeiro é um objeto de contexto relacionado à função “build” do seu Widget, e o segundo “routeContext” relacionado ao construtor “MaterialPageRoute”.

BLoC Global

Quando MultiBlocProvider envolve toda a aplicação, não importa o contexto a ser usado, pois todos os BLoC serão passados ​​através de cada contexto.

Mas pense bem, todos os widgets terão acesso a cada BLoC. Tudo bem se forem dados de autorização ou algumas informações de perfil que precisam ser acessíveis para vários widgets. Mas se forem dados que devem ser solicitados da API e somente após a autorização ser bem-sucedida, você precisará escrever muitos códigos relacionados à inicialização lenta de cada BLoC e gerenciar eventos subutilizados, estados, etc.

BLoC local

Podemos localizar BLoC para cada parte do aplicativo, você já sabe como fazer isso:

Neste caso, você terá este BLoC apenas neste escopo por exemplo é uma página que utilizou para exibição do catálogo de produtos. Mas todo o código do BlocBuilder dentro do filho deste BlocProvider não terá acesso ao contexto do bloco que força você a passar o contexto do bloco para cada função que precisa dele, como no exemplo:

Solução alternativa com BLoC local

Para evitar a perda de dados do objeto de contexto, basta criar um wrapper sem estado e usar o widget de destino como filho para ter acesso ao bloco a partir do contexto de construção do widget:

Então ficará mais simples construir parte de uma página, passar bloco pela navegação, etc.

E use o mesmo invólucro do outro lado onde você precisa construir um widget de página baseado no BLoC da página anterior, por exemplo Home> ItemDetails:

Como resultado, temos a solução para passar o bloco pela navegação e simplificar o trabalho com BLoC em widgets.

Como de costume, todas as fontes estão abertas e disponíveis no meu repositório GitHub , então boa sorte!

Por favor me ajude se você quiser melhorar este artigo, então não se acanhe - escreva seus comentários!

Suggested posts

Dominando o desenvolvimento móvel: como escolher a melhor linguagem de programação para seu aplicativo

Dominando o desenvolvimento móvel: como escolher a melhor linguagem de programação para seu aplicativo

O desenvolvimento móvel tornou-se um componente vital para o sucesso das empresas no mundo digital de hoje. Como desenvolvedor de aplicativos móveis, é essencial escolher a linguagem de programação certa para criar seu aplicativo.

Métodos de extensão do Flutter: um guia com exemplos

Métodos de extensão do Flutter: um guia com exemplos

Se você deseja criar aplicativos que funcionem em várias plataformas, o Flutter é uma ótima estrutura a ser considerada. Ele usa a linguagem de programação Dart e possui um recurso chamado “métodos de extensão” que o torna realmente flexível.

Related posts

Repensando a mídia: as cinco verdades de McChesney e o futuro das comunicações

No mundo hiperconectado de hoje, os sistemas de mídia desempenham um papel fundamental na formação da opinião pública e, consequentemente, na tomada de decisões democráticas. Em sua análise profunda da economia política da comunicação, o estudioso Robert McChesney desafia a sabedoria convencional e apresenta o que chama de “cinco verdades” sobre a mídia.

pronomes são super assustadores

Isso me atinge De repente, como tantas vezes acontece É o meio do caminho tudo de novo <Não, não aquele no Pacífico, seu marrom, aquele no carnaval> Todas as manchetes em voz alta…..

Journal Ouvert

Journal Ouvert

Diário aberto: uma foto por dia. Sempre fui fascinado por histórias.

A performance solo da garota ruiva

A pedido de Hayden, Katie se filma se masturbando.

A performance solo da garota ruiva

Passava da meia-noite quando Hayden levou Katie de volta ao dormitório da faculdade depois da noite juntos. Ela tinha aula cedo de manhã e não tinha outra troca de roupa depois de ter ficado com ele na noite anterior.