setState() 在 dispose() 后调用。
setState() 在 dispose() 后调用。
当我点击提升按钮时,时间选择器会显示出来。现在,如果我等待5秒钟,然后确认时间,就会出现这个错误:
setState() called after dispose()
我亲眼看到flutter在控制台中更新父部件,但为什么?我什么也没做 - 我只是等待了5秒钟。!
下面的示例将在普通项目中工作,但在我相当复杂的项目中将无法工作,因为Flutter正在更新状态,而我正在等待......我做错了什么?有没有人猜测Flutter在我的更复杂的项目中随机更新而不是在简单项目中?
[更新]
我第二次看了一眼,发现它是从我的TabBar
和TabBarView
所在的层面更新的。
这可能与“使用TickerProviderStateMixin”有关,我需要为TabBarView
吗?它可能导致应用程序定期和随机刷新吗?
class DateTimeButton extends State { DateTime selectedDate = new DateTime.now(); Future initTimePicker() async { final TimeOfDay picked = await showTimePicker( context: context, initialTime: new TimeOfDay(hour: selectedDate.hour, minute: selectedDate.minute), ); if (picked != null) { setState(() { selectedDate = new DateTime(selectedDate.year, selectedDate.month, selectedDate.day, picked.hour, picked.minute); }); } } @override Widget build(BuildContext context) { return new RaisedButton( child: new Text("${selectedDate.hour} ${selectedDate.minute}"), onPressed: () { initTimePicker(); } ); } }
admin 更改状态以发布 2023年5月21日