在dispose()之后调用的setState()
我确实在控制台中看到Flutter如何更新父窗口小部件,但为什么呢? – 我什么都不做 – 我等了5秒钟!
这个例子在普通项目中可以使用,但是在我的项目中,这个项目要复杂得多,因为在我等待的时候,颤动会更新状态……我怎么了?有没有人猜测在我更复杂的项目而不是在一个简单的项目中,颤动是随机更新的?
[UPDATE]
我检查它是从我的Tabbar和TabbarVIEw所在的级别更新.
是否必须对tabbarvIEw所需的“with TickerProvIDerStateMixin”做些什么?可能是因为它导致应用程序定期和随机刷新?
class DateTimebutton extends State<DateTimebuttonWidget> { 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(); } ); }}解决方法 在调用setState之前,只需检查窗口小部件的状态类的布尔属性“已挂载”.
if (this.mounted){ setState((){ //Your state change code goes here });}总结
以上是内存溢出为你收集整理的flutter – 在dispose()之后调用的setState()全部内容,希望文章能够帮你解决flutter – 在dispose()之后调用的setState()所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)