Zastanawiam się, jaki jest zalecany sposób przekazywania danych do widgetu stanowego podczas jego tworzenia.
Dwa style, które widziałem to:
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;
}
}
Ta metoda zachowuje wartość zarówno w, jak ServerInfo
i _ServerInfoState
, co wydaje się nieco marnotrawne.
Inną metodą jest użycie 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;
}
}
Wydaje się to trochę wstecz, ponieważ stan nie jest już przechowywany w _ServerInfoSate
widgecie.
Czy istnieje najlepsza praktyka?
ServerInfo(this._server);