在调整小部件大小后,我在items_head
上得到一个LateInitializationError
。
这是代码:
class Head_View extends StatefulWidget {
Head_View({Key? key}) : super(key: key);
late List<AppointmentItemWrapper> items_head;
//late MultiChildRenderObjectWidget DTIT_head; --> **EDIT ON 20230605**
@override
State<Head_View> createState() => _Head_ViewState();
}
class _Head_ViewState extends State<Head_View> {
@override
void initState() {
widget.items_head = [
AppointmentItemWrapper(
ID: 111,
key: UniqueKey(),
startDateTime: DateTime(2022, 1, 1, 8, 00, 0),
endDateTime: DateTime(2022, 1, 1, 9, 30,0),
position: 0,
text: "Event N1",
positiondragging: (double valxx) { print("HAHAH"); },
),
];
super.initState();
}
@override
Widget build(BuildContext context) {
return DynamicTimeline(
key: _myWidgetKey_DTIT_head,
firstDateTime: DateTime(2022, 1, 1,7,0,0),
lastDateTime: DateTime(2022, 1, 1,18,0,0),
labelBuilder: DateFormat('hh:mm').format,
items: widget.items_head, );
}
}
就像我想的:initState()
通常应该只在第一次构建之前调用(第一次构建将发生在super.init()
中?))并且当调整小部件的大小时,应该再次调用build
来重建小部件,但是items_head
应该已经在范围内了,或者我错了吗?
2条答案
按热度按时间ivqmmu1c1#
当使用有状态小部件类型时,您应该初始化状态小部件中的变量。
将下面的
items_head
移动到state
小部件。9jyewag02#
如果在
class Head_View extends StatefulWidget {
中声明items_head
它将在每次重建时清空列表。
试着在这里声明。