我有这个初始化状态方法:
@override
void initState() {
super.initState();
getNumber(index).then((number) {
if (number> 1000) {
number = number/ 1000;
setState(() {
flag = true;
_num = number.toInt().toString();
});
} else {
setState(() {
_num = number.toInt().toString();
});
}
});
}
我犯了一个错误:
对象的State对象上调用setState()时会发生此错误 不再出现在微件树中的微件(例如,其父项 Widget在其构建中不再包含该Widget).此错误可能 当代码从计时器或动画调用setState()时发生 回拨.首选解决方案是取消计时器或停止 侦听Dispose()回调中的动画.另一种解决方案 是在调用之前判断此对象的"mount"属性 setState()以确保对象仍在树中.
如果正在调用setState(),则此错误可能表示内存泄漏 因为另一个对象保留了对此State对象的引用 在它从树上移走之后.为了避免内存泄漏, 考虑在Dispose()过程中断开对此对象的引用.
如何以正确的方式使用dispose?