【发布时间】:2022-10-12 22:08:04
【问题描述】:
我正在尝试使用Dart 2.18.2 将StreamTransformer 应用于InputElement 字段。我遇到以下错误:
变压器错误:
Line 18: The argument type 'StreamTransformer<Object?, Object?>' can't be assigned to the parameter type 'StreamTransformer<String?, dynamic>'.
空安全错误:
Line 8: The method 'contains' can't be unconditionally invoked because the receiver can be 'null'.
我的 HTML
<h4>Email address:</h4>
<input />
<div style="color: red"></div>
我的飞镖代码:
import 'dart:html';
import 'dart:async';
void main() {
final InputElement input = querySelector('input') as InputElement;
final DivElement div = querySelector('div') as DivElement;
final transformer = StreamTransformer.fromHandlers(
handleData: (value, sink) {
if(value.contains('@')) {
sink.add('valid email');
} else {
sink.addError('Invalid');
}
}
);
input.onInput
.map( (event) => (event.target as InputElement).value)
.transform(transformer)
.listen(
(value) => print('Email corrected!'),
onError: (err) => print(err),
);
}
有人可以指出我缺少什么吗?谢谢!
【问题讨论】:
标签: flutter dart dart-null-safety