首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未调用Dispose

未调用Dispose
EN

Stack Overflow用户
提问于 2021-02-11 19:57:40
回答 1查看 620关注 0票数 0

导航堆栈上有一个有状态的Widget;由于某种原因,当应该从堆栈中删除HomeScreen()时,它似乎没有调用doesn()。

我以两种方式从导航堆栈中删除HomeScreen:

1)使用Navigator.pushReplacement()的

代码语言:javascript
复制
Navigator.pushReplacement(
                    context,
                    PageRouteBuilder(
                        pageBuilder: (context, a1, a2) => GroupScreen()));

2)使用Navigator.of(上下文).pushAndRemoveUntil()

代码语言:javascript
复制
Navigator.of(context).pushAndRemoveUntil(
        MaterialPageRoute(builder: (context) => LandingScreen()),
        (Route<dynamic> route) => false);

HomeScreen()中的dispose方法被以下内容覆盖:

代码语言:javascript
复制
@override
  void dispose() {
    print("dispose called");
    _timer.cancel();
    print('Timer has been disposed');
    super.dispose();
  }

很明显,它没有被调用,因为print语句没有输出到控制台。

值得一提的是,HomeScreen有一个StreamBuilder,但我不太确定这是否会影响事物。

任何帮助都将不胜感激,谢谢。

EN

回答 1

Stack Overflow用户

发布于 2021-02-11 20:29:01

不过,事实证明,我使用的是"MaterialApp“作为构建方法中的一个小部件,而不是导致问题的”资料“。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66161919

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档