Hoy vamos a aprender cómo podemos utilizar GlobalKey en Flutter para poder utilizar métodos que alteran los Widgets desde otros componentes.
Lo primero que tenemos que hacer es crear una GlobalKey fuera del Widget:
final GlobalKey<SolicitudesState> solicitudesKey = GlobalKey<SolicitudesState>();
Ahora modificamos el Widget quitando las class privadas por públicas en los States (es decir quitando el _ previo que tienen en el nombre del state) (de _SolicitudesState a SolicitudesState) quedando de esta forma:
class Solicitudes extends StatefulWidget { const SolicitudesAmistad({Key? key}) : super(key: key); @override SolicitudesState createState() => SolicitudesState(); } class SolicitudesState extends State<Solicitudes> { ...
Ahora generado podemos añadir el método que queremos utilizar desde fuera del Widget:
class _SolicitudesState extends State<Solicitudes> { @override void initState() { super.initState(); } void refrescar() async { print("Refrescar"); } ...
Y para llamarlo tendremos que utilizar ese GlobalKey asignandolo al Key del widget de esta forma:
final GlobalKey<SolicitudesState> solicitudesKey = GlobalKey<SolicitudesState>(); void refrescarSolicitudes(){ solicitudesKey.currentState?.refrescar(); } .... Solicitudes(key: solicitudesKey), ....
Ingeniero en Informática, me encanta crear cosas o arreglarlas y darles una nueva vida. Escritor y poeta. Más de 20 APPs publicadas y un libro en Amazon.