0

我已经开始将我的代码从 Dart 1.24 迁移到 Dart 2.1.0,我现在在函数中的某些类型转换方面遇到了一些问题。

我有以下代码,这基本上是一个登录页面,我在其中注册了回车键,然后鼠标单击按钮调用函数:

querySelector('#btnLgn').onClick.listen(onClickLogin);
querySelector('#usrName').onKeyUp.listen(onKeyboardPressed);

void onKeyboardPressed(KeyboardEvent e) {
    if (e.keyCode == KeyCode.ENTER) {
        onClickLogin(e);
    }
}

Future onClickLogin(Event e) async {
    [...]
}

侦听器应该在一段时间内onClick调用该函数,这两者都是类的子类型,而类的子类型是.MouseEventonKeyUpKeyboardEventUIEventEvent

每当onClickLogin被调用时,无论是单击按钮还是按 Enter,我都会收到以下错误:

_js_helper.TypeErrorImpl.new {message: "Type 'Event$' is not a subtype of ?expected type 'KeyboardEvent$'.", Symbol(_error): Error at Object.dart.throw (http://localhost:32400/packages/$sdk/dev_compiler/amd/dart_sdk.js:48…}

为什么我不能onClickLogin使用子类型EventUIEvent在期望这两个类中的一个时调用?

4

0 回答 0