Para acceder a un atributo de un StatefulWidget, desde su clase State de estado, podemos usar widget.nombreDelAtributo. Con poner «widget.» estamos de alguna manera accediendo a los atributos del StatefulWidget.
Vamos a verlo con un ejemplo. Imaginad que estamos haciendo la aplicación de un zoo, una aplicación que mostrará fichas de animales con sus datos. Podríamos crear una clase «Animal» que contuviera los datos de los animales.
Para mostrar la información de un objeto de la clase Animal, podríamos
crear un Widget «AnimalCardWidget». Este widget recibiría el objeto animal como parámetro y lo usaría para obtener el valor de los datos que tiene que mostrar en los diferentes widgets que la compongan.
Hasta ahí estupendo. Pero ¿qué pasa si se trata de un StatefulWidget?, si esto es así devolveremos los widgets con su contenido dentro del objeto de State asignado a AnimalCardWidget, por lo que habrá que acceder al atributo animal del widget para obtener los valores.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 class AnimalCardWidget extends StatefulWidget {
MiWidget({Key key, @required this.animalCard}) : super(key: key);
final Animal animal;
@override
_AnimalCardWidgetState createState() => _AnimalCardWidgetState();
}
class _AnimalCardWidgetState extends State<AnimalCardWidget> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Text(widget.animal.name),
),
);
}
}