无法在初始化程序中访问实例成员“widget”

2024-02-24

在我的项目中,我使用以下代码将数据从一个小部件传递到另一个小部件:

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不能在构建方法之外使用,所以我收到错误消息The instance member 'widget' can't be accessed in an initializer.。有人知道如何克服这个问题吗?


您可以像这样在 initState 函数中访问小部件。

class _TranslatorSignUpStep2State extends State<TranslatorSignUpStep2> {
  TranslatorModel _translatorModel ;

@override
void initState() {
_translatorModel = widget.transModel;
}

}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法在初始化程序中访问实例成员“widget” 的相关文章

随机推荐