我正在尝试构建一个小部件并在initState()函数中执行某些操作。在其他情况下,我之前已经做过,但是这次不调用initState()。我已经设置了断点,应用程序进入了构造函数(断言行),并且assert中的对象不为null,因此它应该继续并初始化状态。但是,事实并非如此。
任何帮助将不胜感激。谢谢。
代码如下:
class MyWidget extends StatefulWidget {
SomeOtherObject someOtherObject;
MyWidget({@required this.someOtherObject})
:
assert(someOtherObject != null)
;
@override
_MyWidgetState createState() => _MyWidgetState();
}
class _MyWidgetState extends State<MyWidget> {
@override
void initState() {
super.initState();
// widget.someOtherObject.addListener(update);
}
@override
Widget build(BuildContext context) {
// ...
}
}
答案 0 :(得分:0)
我会将您重定向到以下答案:initState function is't be called in StatefulWidget by default
您的代码在DartPad中运行良好,请确保完全重新启动应用程序,而不仅仅是热重装。对于我来说,Flutter经常喜欢使用我的应用程序的旧版本,因此我必须热重启。另外,您知道,每当您编辑initState()
时,都必须热重启应用程序才能使更改生效。