首页 > 解决方案 > 在 Flutter 中如何以及在何处调用 Dispose

问题描述

我正在阅读如何在颤振上使用 dispose 但我无法弄清楚。如果我在 Navigator.pushReplacementNamed 之后调用下面的 pagedispose 函数,我总是会收到错误消息。如果我从另一个类页面调用这个函数,我会得到它不存在的错误等。

非常感谢您在转换到另一个 Flutter 页面时如何清除页面上所有正在运行的功能等的指导。

@override
void pagedispose(){   
    vtimer.cancel();   
    vcontroller.dispose();   
    super.dispose();   
 }

提前致谢。

标签: flutterdispose

解决方案


根据文档

处置方法

当此对象从树中永久删除时调用。

关于页面,当页面从导航堆栈中移除时调用 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


推荐阅读