Estou me perguntando qual é a maneira recomendada de passar dados para um widget com estado, ao criá-lo.
Os dois estilos que vi são:
class ServerInfo extends StatefulWidget {
Server _server;
ServerInfo(Server server) {
this._server = server;
}
@override
State<StatefulWidget> createState() => new _ServerInfoState(_server);
}
class _ServerInfoState extends State<ServerInfo> {
Server _server;
_ServerInfoState(Server server) {
this._server = server;
}
}
Este método mantém um valor em ServerInfo
e _ServerInfoState
, o que parece um desperdício.
O outro método é usar widget._server
:
class ServerInfo extends StatefulWidget {
Server _server;
ServerInfo(Server server) {
this._server = server;
}
@override
State<StatefulWidget> createState() => new _ServerInfoState();
}
class _ServerInfoState extends State<ServerInfo> {
@override
Widget build(BuildContext context) {
widget._server = "10"; // Do something we the server value
return null;
}
}
Isso parece um pouco para trás, pois o estado não é mais armazenado, _ServerInfoSate
mas sim no widget.
Existe uma prática recomendada para isso?
ServerInfo(this._server);