flutter有些情况下调用context中属性或方法时报错如下:
[ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: Looking up a deactivated widget's ancestor is unsafe.
At this point the state of the widget's element tree is no longer stable.
To safely refer to a widget's ancestor in its dispose() method, save a reference to the ancestor by calling dependOnInheritedWidgetOfExactType() in the widget's didChangeDependencies() method.
上面说的意思是不是安全的引用小部件,就是已经销毁的界面然后重复销毁,会爆上面错误。
解决办法:只需在报错代码行外层加个判断,关键代码如下所示:
当mounted为true时才可以调用context的属性或方法
if (context.mounted) {
// 报错的代码
}