Dart HTML:清除 Button 上的 onClick 侦听器

Dart HTML: Clear onClick listeners on Button

是否有某种方法可以在 Dart HTML 中清除按钮上的 onClick 侦听器而不需要跟踪所有侦听器?

每次使某个 div 可见并且 onClick 侦听器附加到某些按钮时都会执行此代码,如果它被隐藏并再次显示,则会附加更多的 onClick 侦听器并且旧的 onClick 事件不是更长的有效期也被调用。

querySelectorAll("button.update-something").forEach((ButtonElement b) {
    b.onClick.listen((e) {
        // Do Stuff
    });
}

有没有办法清除现有的 onClick 侦听器或覆盖现有的 onClick 侦听器而不必跟踪以前的 onClick 侦听器?

跟踪你的意思可能是

List<StreamSubscriptions> subscriptions = [];

querySelectorAll("button.update-something").forEach((ButtonElement b) {
    subscriptions.add(b.onClick.listen((e) {
        // Do Stuff
    }));
}

我想这就是您要找的东西

querySelectorAll("button.update-something").forEach((ButtonElement b) {
    b.addEventListener('click', clickHandler);
}

void clickHandler(e) {
  // Do stuff
}

querySelectorAll("button.update-something").forEach((ButtonElement b) {
    b.removeEventListener('click', clickHandler);
}