Мені цікаво, яким є рекомендований спосіб передачі даних у віджет, що створює стан, під час його створення.
Два стилі, які я бачив:
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;
}
}
Цей метод зберігає значення і в, ServerInfo
і _ServerInfoState
, що здається трохи марнотратним.
Інший метод полягає у використанні 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;
}
}
Це здається трохи назад, оскільки стан більше не зберігається, _ServerInfoSate
а замість цього у віджеті.
Чи є найкраща практика для цього?
ServerInfo(this._server);