Olá, pessoal!
Criei uma snackbar que aparece como uma mensagem de sucesso pro usuário. Porém, após a mudança de estrutura de páginas, ele parou de funcionar. Recebo a seguinte mensagem no console:
[VERBOSE-2:ui_dart_state.cc(157)] Unhandled Exception: Scaffold.of() called with a context that does not contain a Scaffold.
No Scaffold ancestor could be found starting from the context that was passed to Scaffold.of(). This usually happens when the context provided is from the same StatefulWidget as that whose build function actually creates the Scaffold widget being sought.
Ainda não entendi muito bem essa parte de contexto. Segue o código da screen lista:
import 'package:bytebank/components/transferencia.dart';
import 'package:bytebank/models/transferencia.dart';
import 'package:bytebank/screens/transferencia/formulario.dart';
import 'package:flutter/material.dart';
const _tituloAppBar = 'Transferências';
class ListaTransferencias extends StatefulWidget {
final List<Transferencia> _transferencias = List();
@override
State<StatefulWidget> createState() {
return ListaTransferenciasState();
}
}
class ListaTransferenciasState extends State<ListaTransferencias> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(_tituloAppBar),
),
body: ListView.builder(
itemCount: widget._transferencias.length,
itemBuilder: (context, index) {
final transferencia = widget._transferencias[index];
return ItemTransferencia(transferencia);
},
),
floatingActionButton: FloatingActionButton(
child: Icon(Icons.add),
onPressed: () {
Navigator.push(context,
MaterialPageRoute(builder: (BuildContext context) {
return FormularioTransferencia();
})).then((transferenciaRecebida) =>
_atualiza(transferenciaRecebida, context));
},
),
);
}
void _atualiza(Transferencia transferenciaRecebida, BuildContext context) {
if (transferenciaRecebida != null) {
setState(() {
widget._transferencias.add(transferenciaRecebida);
});
Scaffold.of(context).showSnackBar(
SnackBar(
content: Text('Transferência realizada com sucesso!'),
),
);
}
}
}
O código completo está no meu github: https://github.com/anacarolinahernandes/bytebank-flutter
Alguém pode me ajudar a solucionar esta questão? Agradeço desde já!