Summary
Keywords
Full Transcript
Playlist: Curso Grátis de FLUTTER e DART Completo https://www.youtube.com/playlist?list=PL5EmR7zuTn_aX0pG4oWTyKKQT25Hkq2XG Consumidor Agora que o CartModel é fornecido aos widgets em nosso aplicativo por meio da declaração ChangeNotifierProvider na parte superior, podemos começar a usá-lo. Isso é feito através do widget Consumidor. Devemos especificar o tipo do modelo que queremos acessar. Nesse caso, queremos o CartModel, portanto, escrevemos Consumer CartModel. Se você não especificar o genérico (CartModel), o pacote do provedor não poderá ajudá-lo. O provedor é baseado em tipos e, sem o tipo, não sabe o que você quer. O único argumento obrigatório do widget Consumidor é o construtor. Construtor é uma função que é chamada sempre que o ChangeNotifier é alterado. (Em outras palavras, quando você chama notifyListeners () em seu modelo, todos os métodos de construtor de todos os widgets Consumidor correspondentes são chamados.) O construtor é chamado com três argumentos. O primeiro é o contexto, que você também obtém em cada método de construção. O segundo argumento da função do construtor é a instância do ChangeNotifier. É o que estávamos pedindo em primeiro lugar. Você pode usar os dados no modelo para definir como a interface do usuário deve se parecer em um determinado ponto. O terceiro argumento é filho, que está lá para otimização. Se você tiver uma subárvore de widget grande em seu Consumidor que não muda quando o modelo é alterado, você pode construí-la uma vez e acessá-la pelo criador. ; É uma boa prática colocar seus widgets do Consumidor o mais fundo possível na árvore. Você não deseja reconstruir grandes partes da interface do usuário apenas porque algum detalhe foi alterado em algum lugar. Provedor.de - Provider.of Às vezes, você realmente não precisa dos dados no modelo para alterar a interface, mas ainda precisa acessá-los. Por exemplo, um botão ClearCart quer permitir que o usuário remova tudo do carrinho. Ele não precisa exibir o conteúdo do carrinho, basta chamar o método clear (). Para este caso de uso, podemos usar Provider.of, com o parâmetro listen configurado como false.
