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'。” 为什么小部件会为空?我打印出周期所属的列表,但它们都已正确初始化。
解决方案
不要使用构造函数。而是使用initState
class Foo extends State<Bar> {
@override
void initState() {
// widget is not null here
}
}
推荐阅读
- cookies - 饼干在
似乎不起作用 - ios - 在 iOS 13 中,UITabBarItem 的 standardAppearance 应用于所有其他项目
- java - 如何使用 MOXy Dynamic JAXB 查找是否需要 XSD 元素?
- r - 如何找出逗号在 R 的数据框中的单列中连续出现的最大数量?
- scala - Scala CRUD pojo 生成
- javascript - discord js,使提到的用户耳聋
- oracle - 不使用存储过程截断表权限
- html - Go 模板一起迭代多个数组
- mysql - Mysql docker container - can't get much of anything to work
- python-3.x - 如何将这些添加到字典中并在 python 中每 5 次循环后使一个活动变量结束?