Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 小部件变量为空_Flutter - Fatal编程技术网

Flutter 小部件变量为空

Flutter 小部件变量为空,flutter,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(dat

我有一个状态完整的小部件

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;
  }
}
类周期扩展StatefulWidget{
最终StreamController通知=StreamController();
最后整修期;
期间(列表数据,此.Period){
notify.sink.add(数据);
打印(“已创建新期间:”);
印刷(期间);
}
无效处置(){
notify.close();
}
@凌驾
_PeriodState createState()=>\u PeriodState();
}
类_PeriodState扩展了状态{
bool isNull=true;
bool isListening=false;
列出经验教训;
_周期状态(){
课程=[(genTime())];
widget.notify.stream.listen(更新);
isListening=true;
}
}
但是在线
widget.notify.stream.listen(更新)它捕获异常“在null上调用了getter'notify'

为什么widget是空的?我打印出句点所属的列表,但所有句点都已正确初始化。

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

class Foo extends State<Bar> {
  @override
  void initState() {
    // widget is not null here
  }
}
类Foo扩展状态{
@凌驾
void initState(){
//小部件在此不为空
}
}

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

class Foo extends State<Bar> {
  @override
  void initState() {
    // widget is not null here
  }
}
类Foo扩展状态{
@凌驾
void initState(){
//小部件在此不为空
}
}