Implementei o código como está na aula 03 do módulo 04. Na aula rodou, mas como tenho a última versão do Flutter, aqui não estou conseguindo.
![]( )
Implementei o código como está na aula 03 do módulo 04. Na aula rodou, mas como tenho a última versão do Flutter, aqui não estou conseguindo.
![]( )
Fala Edson, tudo bom?
É que agora a conversão não é mais implicita, você tem que deixar claro que quer converter de Future<dynamic>
que é o retorno do .push
, para Future<Transferencia>
;
Você pode fazer da seguinde forma:
final Future<Transferencia> future = Navigator.push(
context,
MaterialPageRoute(
builder: (context) {
return FormularioTransferencia();
},
),
) as Future<Transferencia>;
O que seria basicamente adicionar o as Future<Transferencia>
no final. E pronto, agora ele aceita a operação.
Você vai notar também que há um erro no future.then()
. Nesse caso é só um detalhe chatinho, mas importante. O .then
recebe uma função por parâmentro, ele não é uma função por sintaxe. Então:
ERRADO:
future.then(transferenciaRecebida) {
debugPrint('$transferenciaRecebida');
}
CERTO:
future.then((transferenciaRecebida) {
debugPrint('$transferenciaRecebida');
});
Para falicitar a visualização, você pode pensar que há uma sintaxe de função dentro do parâmetro do .then()
, algo assim: .then( (){} )
, que vai ter seus próprios parâmetros e corpo.
Ao final, o código fica assim:
onPressed: () {
final Future<Transferencia> future = Navigator.push(
context,
MaterialPageRoute(
builder: (context) {
return FormularioTransferencia();
},
),
) as Future<Transferencia>;
future.then((transferenciaRecebida) {
debugPrint('$transferenciaRecebida');
});
}
Acredito que seja isso, bons estudos e qualquer coisa é só chamar!
Muito obrigado pela resposta, Ricarth, mas eu só consegui fazer rodar da forma abaixo. Agora, estou enfrentando outra questão. Este exercício é do curso: Fundamentos do Flutter crie seu primeiro App, módulo 5 - Utilizando StatefulWidgets. No código que vai abaixo, eu já verifiquei e está sendo gravado os elementos da Lista que estão nas linhas 89 e 90. Quando insiro um novo elemento, e já verifiquei, ele está lá, ele não é mostrado na tela pela Listview.Builder. Poderia analisar para mim, por gentileza?
![]( )