반응형
상태 저장 위젯에 데이터 전달
데이터를 생성하는 동안 상태 저장 위젯에 데이터를 전달하는 권장 방법이 무엇인지 궁금합니다.
내가 본 두 가지 스타일은 다음과 같습니다.
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
되지 않고 대신 위젯에 저장되므로 약간 거꾸로 보입니다 .
이에 대한 모범 사례가 있습니까?
State
생성자 를 사용하여 매개 변수를 전달하지 마십시오 . 당신은 이러한 사용에 액세스해야합니다 this.widget.myField
.
생성자를 편집 할뿐만 아니라 많은 수작업이 필요합니다. 아무것도 가져 오지 않습니다. 의 모든 필드를 복제 할 이유가 없습니다 Widget
.
편집하다 :
여기에 예가 있습니다.
class MyStateful extends StatefulWidget {
final String foo;
const MyStateful({Key key, this.foo}): super(key: key);
@override
_MyStatefulState createState() => _MyStatefulState();
}
class _MyStatefulState extends State<MyStateful> {
@override
Widget build(BuildContext context) {
return Text(widget.foo);
}
}
Another answer, building on @RémiRousselet's anwser and for @user6638204's question, if you want to pass initial values and still be able to update them in the state later:
class MyStateful extends StatefulWidget {
final String foo;
const MyStateful({Key key, this.foo}): super(key: key);
@override
_MyStatefulState createState() => _MyStatefulState(foo: this.foo);
}
class _MyStatefulState extends State<MyStateful> {
String foo;
_MyStatefulState({this.foo});
@override
Widget build(BuildContext context) {
return Text(foo);
}
}
참고URL : https://stackoverflow.com/questions/50818770/passing-data-to-a-stateful-widget
반응형
'development' 카테고리의 다른 글
반복 암호를 확인하는 Angular 2 양식 (0) | 2020.12.07 |
---|---|
Xcode에 개발 팀이 표시되지 않음 (0) | 2020.12.07 |
DOM 노드 인덱스 찾기 (0) | 2020.12.07 |
HttpWebRequest 및 기본 GZip 압축 (0) | 2020.12.07 |
options_for_select 태그에서 선택 목록의 첫 번째 항목에 공백 포함 (0) | 2020.12.07 |