flutter - 在 Flutter 中如何以及在何处调用 Dispose
问题描述
我正在阅读如何在颤振上使用 dispose 但我无法弄清楚。如果我在 Navigator.pushReplacementNamed 之后调用下面的 pagedispose 函数,我总是会收到错误消息。如果我从另一个类页面调用这个函数,我会得到它不存在的错误等。
非常感谢您在转换到另一个 Flutter 页面时如何清除页面上所有正在运行的功能等的指导。
@override
void pagedispose(){
vtimer.cancel();
vcontroller.dispose();
super.dispose();
}
提前致谢。
解决方案
根据文档
处置方法
当此对象从树中永久删除时调用。
关于页面,当页面从导航堆栈中移除时调用 dispose 方法。这里有一个很好的解释Navigation
。
当您的小部件(页面)扩展StatefulWidget
时,它不是强制性的,但您可以dispose
根据需要覆盖该方法以执行其他指令。当从导航树中删除页面时,会自动调用该方法。重写方法如下
@override
void dispose() {
// your desired instructions here
super.dispose(); // This will free the memory space allocated to the page
}
尽管如此,该方法void pagedispose()
不能被覆盖,因为它不是已知的StatefulWidget
推荐阅读
- ethereum - 转自失败
- python - 文件“mtrand.pyx”,第 905 行,在 numpy.random.mtrand.RandomState.choice TypeError:'dict_keys' 对象不能被解释为整数
- python - 这个函数的时间/空间复杂度是多少?
- java - Toast.makeText().show(); 不显示
- python - 如何在`matplotlib.pyplot`中使用类别轴绘制水平线(`hlines`)?
- apache-tika - 为什么 Tika 2.1 应用程序会忽略 .txt 文件中的文本?
- javascript - useState 未正确更新数组
- javascript - 如何将数据从孩子传递给父母?
- r - 如何转置列并使其成为R中的标题
- excel - 更改 VBA 宏中的过滤列