这是有效的声明
StreamSubscription currentSubscription = querySelector(…).onClick.listen(….).
这里有一个分配给一个StreamSubscription的侦听器。
但是,当您执行queryselectorAll(..)。onClick.listen(..)时。您正在将侦听器添加到所有查询选择的元素中。
我注意到以下陈述也是有效的。
StreamSubscription currentSubscription = queryselectorAll(..).onClick.listen(..)
在这里,我使用onClick侦听器将1 StreamSubscription分配给元素列表。这是如何运作的?
最佳答案
您不能将多个侦听器分配给StreamSubscription
。
您的第二条语句不起作用,因为querySelectorAll()
返回一个集合,并且您无法收听集合。
也许这就是您想要的:
Iterable<StreamSubscription> subscriptions =
queryselectorAll(..).map((e) => e.onClick.listen(..));
然后再
if(subscriptions != null) {
subscriptions.forEach((s) => s.cancel());
}
关于dart - 如何将多个监听器分配给单个StreamSubscription?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31551007/