构建有状态的小部件时未调用initState()

时间:2019-12-08 19:55:23

标签: flutter dart

我正在尝试构建一个小部件并在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) {
        // ...
    }
}

1 个答案:

答案 0 :(得分:0)

我会将您重定向到以下答案:initState function is't be called in StatefulWidget by default

您的代码在DartPad中运行良好,请确保完全重新启动应用程序,而不仅仅是热重装。对于我来说,Flutter经常喜欢使用我的应用程序的旧版本,因此我必须热重启。另外,您知道,每当您编辑initState()时,都必须热重启应用程序才能使更改生效。