This widget has been unmounted, so the State no longer has a context (and should be considered defunct).
E/flutter ( 644): Consider canceling any active work during “dispose” or using the “mounted” getter to determine if the State is still active.
错误翻译:
此小部件已被卸载,因此状态不再具有上下文(应该认为已失效)。
考虑在“dispose”期间取消任何活动的工作,或者使用“挂载”getter来确定状态是否仍然是活动的。
产生原因:
在调用setState方法,或者在未挂载的页面使用 context,比如 Provider
解决方案:
1、在调用方法前添加判断
if (mounted) {
setState(() {});
}
2、或者
在 main.dart 获取一个全局的 context
static BuildContext appContext;
@override
void initState() {
super.initState();
MyApp.appContext = context;
}