导航堆栈上有一个有状态的Widget;由于某种原因,当应该从堆栈中删除HomeScreen()时,它似乎没有调用doesn()。
我以两种方式从导航堆栈中删除HomeScreen:
1)使用Navigator.pushReplacement()的
Navigator.pushReplacement(
context,
PageRouteBuilder(
pageBuilder: (context, a1, a2) => GroupScreen()));2)使用Navigator.of(上下文).pushAndRemoveUntil()
Navigator.of(context).pushAndRemoveUntil(
MaterialPageRoute(builder: (context) => LandingScreen()),
(Route<dynamic> route) => false);HomeScreen()中的dispose方法被以下内容覆盖:
@override
void dispose() {
print("dispose called");
_timer.cancel();
print('Timer has been disposed');
super.dispose();
}很明显,它没有被调用,因为print语句没有输出到控制台。
值得一提的是,HomeScreen有一个StreamBuilder,但我不太确定这是否会影响事物。
任何帮助都将不胜感激,谢谢。
发布于 2021-02-11 20:29:01
不过,事实证明,我使用的是"MaterialApp“作为构建方法中的一个小部件,而不是导致问题的”资料“。
https://stackoverflow.com/questions/66161919
复制相似问题