Como fazer um widget de erro global? - Flutterando Fórum
Como fazer um widget de erro global?
Pessoal, estou com um desafio ai faz algum tempo. Vou tentar resumir o problema: basicamente o app consome uma api, e toda regra de negocio eh tratada na API, entao qualquer mensagem de erro que venha da API nosso app exibe uma mensagem de erro com um showModalBottomSheet.
Como eu faria para ter algo parecido com isso de forma global? Precisava de algo que eu pudesse chamar dentro do tratamento de erro da API para exibir isso em qualquer lugar do app, sem preicisar ficar repetindo codigo, pq o tratamento eh sempre o mesmo. o desafio aqui eh que showModalBottomSheet tem aquele cara chamado context, entao praticamente tenho que ficar passando esse context o tempo todo e quando trabalhamos com repository, model e uma classe de tratamento pra requests http fica insanamente inviavel passar esse context pra tudo.
Ja procurei uma alternativa ao showModalBottomSheet, algo que nao use o context explicitamente. Trabalhar com context pra mim sempre foi uma dor de cabeca quando se trata de algo "global"
Pode utilizar o package Get, para chamar rotas e dialogs sem contexto.
Se já utiliza o package flutter_modular em sua ultima versão, pode utilizar Modular.to.showDialog.
Para globalizar todos os tratamentos de erro de requisições, pode utilizar o package DIO e criar interceptors para tratar os erros.
O @deivao fez um componente uma vez para isso usando Overlay que é o que a maioria dos packages de Toast like utilizam .
https://www.youtube.com/watch?v=KuXKwjv2gTY
Mas lembe-se que ele tem que ser Pai do seu MaterialApp
Bwolf consegue me ajudar em flutter sou novato kk estou desenvolvendo um app aonde tenho algumas tabelas(coleçoes) estou usando cloud firestore, eu queria saber como passar dados de uma tabela pra outra, por exemplo tenho formulario de cadastro dos pais e formularios dos filhos, eu queria saber como faço tipo cadastro o pai primeiro, ai quando ele entra com email, virá a tela de cadastro do filho, tipo ligar as 2 tabelas
Por gentileza, faça perguntas pertinentes ao tópico.
Criei um tópico para sua pergunta [link]
deivao caramba que plugin sensacional esse get. Se tivessem criado esse package no comeco de 2019 tinham resolvido metade dos meus problemas hahaha. Ja ouvi falar nos interceptors, vou dar uma estudada pra poder fazer esses tratamentos, talvez resolva mais ainda outros problemas. Cara nao sei como te agradecer, estive por mais de um ano procurando uma solucao pra esses context globais.
Tem também um package focado em resolver o problema de dialogs sem contexto, o package Asuka.
Hoje o package get está com muita coisa dentro, então acredito que não seja viável mais utilizar suas ultimas versões apenas para essa finalidade.