从 dart:html 迁移到 web — 如何监听事件?

问题描述 投票:0回答:1

我目前正在尝试遵循 dart.dev 的 迁移指南来更新依赖于现已弃用的 dart:html 库的包。

一些更新很简单。例如,类似

import "dart:html" as html;

...

final canvas = html.CanvasElement(width: 100, height: 100);

成为

import "package:web/web.dart" as web;

...

final canvas = web.HTMLCanvasElement()..width=100..height=100;

但我很难应付听众。

例如,我有这样的东西,它可以使用 dart:html:

html.document.onFocus.listen((_) {
  // handle event...
});

我注意到

web.document
附加了
onfocus
,但我无法为其添加侦听器...

我们如何处理诸如上述的事件?我们在哪里可以找到 web 包的详细文档?

dart migration dart-html
1个回答
0
投票

您可以通过在

JSFunction
上调用
.toJS
(来自
dart:js_interop
)getter 将 Dart 函数转换为
Function

JSFunction
实例可用于设置
web.document.onfocus
的回调。

所以类似:

import 'package:web/web.dart' as web;
import 'dart:js_interop';

void main() {
  void printString(web.Event event) {
    print(event.target);
  }

  web.document.onfocus = printString.toJS;
}
© www.soinside.com 2019 - 2024. All rights reserved.