为每个实例执行初始化状态

时间:2018-10-11 18:45:59

标签: android dart flutter

在我的应用程序中,我有一个导航抽屉,并且主体根据抽屉中按下的图块进行更新。每个类的主体都是相同的,它是一个statefulwidget,并返回一个listview。对于此类的每个实例(以及每个图块),我需要调用initState方法。我注意到它仅在第一个图块的第一个实例上被调用,然后仅调用build方法。如何在每个实例第一次运行一段代码?

综合:在应用程序中,有一个包含许多图块的抽屉,每个图块都与一个类的实例相关联,该类是应用程序的主体。但是initState仅在第一个实例上被调用。

这是一个例子:

class FirstPage extends StatefulWidget {
  @override
  _FirstPage createState() => new _FirstPage();
}

class _FirstPage extends State<FirstPage> {
  @override
  void initState() {
    super.initState();
    print("debug");
  }
  @override
  Widget build(BuildContext context) {
    print('hi');
    return ListView(children: <Widget>[Text('text')],
    );
  }
}

如果我在第一次打印该类时实例化该类:debug和hi。我第二次实例化它时,它只打印:嗨

1 个答案:

答案 0 :(得分:1)

不能。 initState的全部要在状态初始化时被调用一次。

您可能想看看其他生命周期。如