openkraken / kraken

A web standards-compliant, high-performance rendering engine based on Flutter.
https://openkraken.com
Apache License 2.0
4.93k stars 304 forks source link

fix: event handlers removal with once time #1359

Closed wssgcg1213 closed 2 years ago

wssgcg1213 commented 2 years ago
  1. Bridge 在调用 UICommand::addEvent 与 UICommand::remveEvent 时都应当考虑当前 EventTarget 已经没有监听器的情况
  2. 在 Bridge/binding.dart 增加了 assert 帮助提早发现多次监听或重复取消监听的情况
  3. 增加了测试用例
answershuto commented 2 years ago

增加不同事件添加到同一个 eventTarget 中的 case,map 判断不受其他事件影响。

answershuto commented 2 years ago

看起来还有问题,这个 case 会抛出加的断言错误

image