Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

EventEmitter is deprecated and shouldn't be used

In AngularDart 3.0.0 EventEmitter is deprecated. So, how to send event from child component to parent?

Before update it is looks like:

@Component(
  selector: 'my-test',
  templateUrl: 'test.component.html'
)
class TestComponent {
  @Input()
  String name = '';

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

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

Now I need use Stream and StreamController. Can someone give an example?

like image 578
Cododoc Avatar asked Apr 28 '17 13:04

Cododoc


1 Answers

Just use a normal StreamController

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

.broadcast is optional. It is required to allow multiple subscribers.

See also https://www.dartlang.org/articles/libraries/broadcast-streams

like image 81
Günter Zöchbauer Avatar answered Sep 18 '22 00:09

Günter Zöchbauer