小部件变量为null flutter

时间:2019-03-06 19:39:19

标签: flutter

我有一个全状态的小部件

class Period extends StatefulWidget{
  final StreamController<List<dynamic>> notify = StreamController<List<dynamic>>();
  final int period;
  Period(List<dynamic> data, this.period){
    notify.sink.add(data);
    print("created new Period:");
    print(period);
  }

  void dispose() {
    notify.close();
  }
  @override
  _PeriodState createState() => _PeriodState();
}

class _PeriodState extends State<Period> {

  bool isNull = true;
  bool isListening = false;
  List<Widget> lessons;

  _PeriodState(){
    lessons = [(genTime())];
    widget.notify.stream.listen(update);
    isListening = true;
  }
}

但是在行widget.notify.stream.listen(update);上,它捕获到异常“在null上调用了getter'notify'”。 为什么小部件为空?我打印出了“周期”所属的“列表”,但所有参数都已正确初始化。

1 个答案:

答案 0 :(得分:1)

不要使用构造函数。而是使用initState

class Foo extends State<Bar> {
  @override
  void initState() {
    // widget is not null here
  }
}