问题描述
我正在阅读有关如何在颤振上使用 dispose 的内容,但我无法弄清楚。如果我在 Navigator.pushReplacementNamed 之后调用下面的 pagedispose 函数,我总是收到错误消息。如果我从另一个类页面调用这个函数,我就会得到它不存在的错误等。
非常感谢您在转换到另一个 Flutter 页面时如何清除页面上所有正在运行的功能等方面的指导。
@override
void pagedispose(){
vtimer.cancel();
vcontroller.dispose();
super.dispose();
}
提前致谢。
解决方法
处理方法
当这个对象从树中永久移除时调用。
对于页面,当页面从导航堆栈中移除时调用 dispose 方法。 Here 很好地解释了 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
的已知方法