class EventTimeModel with ChangeNotifier {
update() {
notifyListeners();
}
}
class SingleEvent extends StatelessWidget {
...
@override
Widget build(BuildContext context) {
return ChangeNotifierProvider(
create: (BuildContext context2) => event.timeModel,
child: buildEventColumn());
}
}
class EventList extends StatelessWidget {
@override
Widget build(BuildContext context) {
return ListView.builder(
itemCount: events.length,
itemBuilder: (context, index) {
Event event = events[index];
return SingleEvent(event: event)
}
}
EventList
使用ListView
显示多个SingleEvent。 SingleEvent
使用ChangeNotifierProvider
提供EventTimeModel
。上下滚动时,我收到消息
Unhandled Exception: A EventTimeModel was used after being disposed.
E/flutter (10215): Once you have called dispose() on a EventTimeModel, it can no longer be used.
因此,我认为一个事件已删除,因为它已经在屏幕之外了。当应再次显示该错误时,将引发该错误。我该如何解决?
答案 0 :(得分:0)
由于timeModel
存在,因此无法在此处使用create方法。
@override
Widget build(BuildContext context) {
return ChangeNotifierProvider.value(
value: event.timeModel,
child: buildEventColumn());
}