在我的项目中,我使用以下代码将数据从一个小部件传递到另一个:
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
TranslatorSignUpStep2(transModel: this._translatorModel),
),
);
然后我通过下面的代码在另一个小部件中检索它:
class TranslatorSignUpStep2 extends StatefulWidget {
final TranslatorModel transModel;
TranslatorSignUpStep2({this.transModel});
@override
_TranslatorSignUpStep2State createState() => _TranslatorSignUpStep2State();
}
问题是,在TranslatorSignUpStep2类中,我想将传入的transModel
分配给另一个变量,以便我编写这段代码
class _TranslatorSignUpStep2State extends State<TranslatorSignUpStep2> {
TranslatorModel _translatorModel = widget.transModel;
}
但是似乎widget
不能在build方法之外使用,所以我得到了错误提示
The instance member 'widget' can't be accessed in an initializer.
。有人知道如何克服这个问题吗?
答案 0 :(得分:2)
您可以像这样在initState函数中访问小部件。
class _TranslatorSignUpStep2State extends State<TranslatorSignUpStep2> {
TranslatorModel _translatorModel ;
@override
void initState() {
_translatorModel = widget.transModel;
}
}
答案 1 :(得分:0)
尝试此代码:
TranslatorSignUpStep2:
class TranslatorSignUpStep2 extends StatefulWidget {
final TranslatorModel transModel;
TranslatorSignUpStep2({this.transModel});
@override
_TranslatorSignUpStep2State createState() => _TranslatorSignUpStep2State(this.transModel);
}
TranslatorSignUpStep2类:
class _TranslatorSignUpStep2State extends State<TranslatorSignUpStep2> {
_TranslatorSignUpStep2State(TranslatorModel _tempModel ){
this._translatorModel =_tempModel;
};
TranslatorModel _translatorModel ;
}
答案 2 :(得分:0)
class OrderDetails extends StatefulWidget {
int selectedDays;
OrderDetails({
this.range,)};
@override
_OrderDetailsState createState() => _OrderDetailsState();
}
class _OrderDetailsState extends State<OrderDetails> {
String getRange;
@override
void initState() {
super.initState();
getRange = widget.range;
}