У меня есть три таких потока:
final _light1RoomCtlr = BehaviorSubject<String>();
final _light2RoomCtlr = BehaviorSubject<String>();
final _light3RoomCtlr = BehaviorSubject<String>();
Stream<String> get getLight1Room => _light1RoomCtlr.stream;
Function(String) get setLight1Room => _light1RoomCtlr.sink.add;
Stream<String> get getLight2Room => _light2RoomCtlr.stream;
Function(String) get setLight2Room => _light2RoomCtlr.sink.add;
Stream<String> get getLight3Room => _light3RoomCtlr.stream;
Function(String) get setLight3Room => _light3RoomCtlr.sink.add;
Я хочу объединить их все, чтобы получить все значения, сгенерированные, когда мне это нужно.
Дело в том, что я использую шаблон блока, и у меня нет на нем функции initState (), поэтому я не могу инициализировать материал ... так что дротик не позволит мне сделать что-то подобное с тем же файлом:
final List<String> _lightRooms = List<String>();
Observable.merge([getLight1Room, getLight2Room, getLight3Room]).listen((room) =>
_lightRooms.add(room);
));
Я много чего пробовал и все время получаю сообщение об ошибке: инициализируются только статические члены ... или что-то в этом роде ... Как я могу выполнить это, используя реактивное программирование и шаблон блока? Если я буду прослушивать виджет, который мне нужен, я могу потерять информацию о другом. Я пробовал примеры rxjs, но здесь это не работает, так как это только вещи определения класса.