11 flutter
在我的项目中,我使用以下代码将数据从一个小部件传递到另一个小部件:
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
TranslatorSignUpStep2(transModel: this._translatorModel),
),
);
Run Code Online (Sandbox Code Playgroud)
然后我通过下面的代码在另一个小部件中检索它:
class TranslatorSignUpStep2 extends StatefulWidget {
final TranslatorModel transModel;
TranslatorSignUpStep2({this.transModel});
@override
_TranslatorSignUpStep2State createState() => _TranslatorSignUpStep2State();
}
Run Code Online (Sandbox Code Playgroud)
问题是,在 TranslatorSignUpStep2 类中,我想将传入的transModel变量分配给另一个变量,因此我编写了此代码
class _TranslatorSignUpStep2State extends State<TranslatorSignUpStep2> {
TranslatorModel _translatorModel = widget.transModel;
}
Run Code Online (Sandbox Code Playgroud)
但似乎widget不能在构建方法之外使用,所以我收到错误消息
The instance member 'widget' can't be accessed in an initializer.。有谁知道如何克服这个?
小智 37
只需在初始化时添加关键字即可late:
class TranslatorSignUpStep2 extends StatefulWidget {
final TranslatorModel transModel;
TranslatorSignUpStep2({this.transModel});
@override
_TranslatorSignUpStep2State createState() => _TranslatorSignUpStep2State();
}
class _TranslatorSignUpStep2State extends State<TranslatorSignUpStep2> {
late TranslatorModel _translatorModel = widget.transModel;
}
Run Code Online (Sandbox Code Playgroud)
小智 14
您可以像这样在 initState 函数中访问小部件。
class _TranslatorSignUpStep2State extends State<TranslatorSignUpStep2> {
TranslatorModel _translatorModel ;
@override
void initState() {
_translatorModel = widget.transModel;
}
}
Run Code Online (Sandbox Code Playgroud)
试试这个代码:
翻译者注册Step2 :
class TranslatorSignUpStep2 extends StatefulWidget {
final TranslatorModel transModel;
TranslatorSignUpStep2({this.transModel});
@override
_TranslatorSignUpStep2State createState() => _TranslatorSignUpStep2State(this.transModel);
}
Run Code Online (Sandbox Code Playgroud)
TranslatorSignUpStep2 类:
class _TranslatorSignUpStep2State extends State<TranslatorSignUpStep2> {
_TranslatorSignUpStep2State(TranslatorModel _tempModel ){
this._translatorModel =_tempModel;
};
TranslatorModel _translatorModel ;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11014 次 |
| 最近记录: |