【发布时间】:2018-10-01 20:03:23
【问题描述】:
我的StatelessWidget 之一中有一个定期计时器。无需过多介绍,这里有一段生成计时器的代码:
class AnniversaryHomePage extends StatelessWidget {
. . .
void _updateDisplayTime(StoreInheritedWidget inheritedWidget) {
String anniversaryString = inheritedWidget.prefs.getString('anniversaryDate');
inheritedWidget.store.dispatch(DateTime.parse(anniversaryString));
}
/// Widget Methods
@override
Widget build(BuildContext context) {
final inheritedWidget = StoreInheritedWidget.of(context);
new Timer.periodic(this.refreshRate, (Timer timer) => _updateDisplayTime(inheritedWidget));
. . .
}
当我尝试将应用程序的起点输入到 flutter test 时,我收到以下错误消息:
══╡ EXCEPTION CAUGHT BY FLUTTER TEST FRAMEWORK ╞════════════════════════════════════════════════════
The following assertion was thrown running a test:
A periodic Timer is still running even after the widget tree was disposed.
'package:flutter_test/src/binding.dart': Failed assertion: line 668 pos 7:
'_fakeAsync.periodicTimerCount == 0'
问题是,我是否错误地使用了我的Timer.periodic?如果没有,我该如何缓解这个错误?
【问题讨论】:
标签: dart flutter flutter-test