事件发射器已被弃用,不应使用。

6
在AngularDart 3.0.0中,EventEmitter已被弃用。那么,如何从子组件向父组件发送事件?
更新之前,它看起来像这样:
@Component(
  selector: 'my-test',
  templateUrl: 'test.component.html'
)
class TestComponent {
  @Input()
  String name = '';

  @Output()
  EventEmitter<String> onNameChange = new EventEmitter<String>();
}

...    
onNameChange.emit('New Name');
...

现在我需要使用Stream和StreamController。有人能给个例子吗?
1个回答

7

只需使用普通的StreamController

final _onNameChangeController = new StreamController<String>.broadcast();
@Output()
Stream<String> get onNameChange => _onNameChangeController.stream;

.broadcast是可选的。它允许多个订阅者。

另请参见https://www.dartlang.org/articles/libraries/broadcast-streams


2
3.0.0文档已发布。文档中还介绍了使用StreamController/Stream代替EventEmitter的方法,具体请参见https://webdev.dartlang.org/angular/guide/template-syntax#custom-events。 - Patrice Chalin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接