I'm exploring the ChangeNotifier class in Dart's observe library for use in a commandline application. But, I'm having two issues.
The number of reported changes in a
List<ChangeRecord>
object are incrementally repeated in each update to the record. See image:ChangeRecord doesn't allow for retrieving only new values. Thus, I'm trying to use a MapChangeRecord instead. But, I don't know how to use it.
This is my sample code for reference:
import 'dart:io';
import 'dart:async';
import 'dart:convert';
import 'package:observe/observe.dart';
class Notifiable extends Object with ChangeNotifier {
String _input = '';
@reflectable get input => _input;
@reflectable set input(val) {
_input = notifyPropertyChange(#input, _input, val);
}
void change(String text) {
input = text;
this.changes.listen((List<ChangeRecord> record) => print(record.last));
}
}
void main() {
Notifiable notifiable = new Notifiable();
Stream stdinStream = stdin;
stdinStream
.transform(new Utf8Decoder())
.listen((e) => notifiable.change(e));
}