我有一个主小部件,其中基于布尔值显示了两个不同的小部件
drawScreen ? DrawScreenWidget() : GuessScreenWidget(),
在GuessScreenWidget()上,我有监听事件
sketchStroke = databaseReference
.child('ref')
.onValue
.listen((data) {
});
因此,当布尔值改变时,屏幕在两个小部件之间移动,但GuessScreenWidget上的listen事件不会被取消。我尝试使用dispose,但它不起作用。
@override
dispose() {
super.dispose();
sketchStroke.cancel();
}
如果有人能指导如何在GuessScreenWidget切换到DrawScreenWidget时取消监听事件,我将不胜感激。
1条答案
按热度按时间46scxncf1#
你的另一个选择,将是使用一个streambuilder,它会处理订阅和终止为您。
或者你可以用这个