我想知道在创建数据时将数据传递给有状态的小部件的推荐方法是什么。
我见过的两种样式是:
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
小部件中,而是存储在小部件中。
是否有最佳做法?
早些时候有人问过这个问题:stackoverflow.com/questions/50428708/…–
—
Blasanka,
:这个答案是一个月新增此人之前stackoverflow.com/questions/50428708/...
—
Blasanka
这回答了你的问题了吗?在不使用构造函数的情况下将StatefulWidget数据传递给State类
—
Blasanka
ServerInfo(this._server);