Flutter - использование rxDart BehaviorSubject с Observable для глобального управления состоянием

Я просто пробую пример кода BehaviorSubject отсюда https://fireship.io/lessons/flutter-state-management-guide/

установлен rxdart и наблюдаемый из pub.dev, но эта строка ошибается

Observable get stream$ => _counter.stream;

ошибка: значение типа ValueStream не может быть возвращено из функции stream $, потому что оно имеет тип возврата «Observable». (return_of_invalid_type в lib \ models \ globals.dart: 54)


person giorgio79    schedule 10.06.2020    source источник


Ответы (2)


Я предполагаю, что класс Observable устарел с момента появления Dart 2.7, в котором представлены методы расширения, поэтому вам нужно использовать обычный класс Stream и импортировать плагин RxDart, чтобы получить различные возможности, которые предлагает RxDart. Если вы хотите объединить два или более потоков, вы можете использовать класс Rx. Я также рекомендую вам использовать плагин flutter_bloc, который отлично справляется с InheritedWidget, StreamBuilder и Streams.

person Yusuf Abdelaziz    schedule 10.06.2020

Видео Fireship.io - отличный обзор возможностей управления состоянием, доступных во Flutter. К сожалению, он немного устарел.

Observable теперь можно безопасно заменить на Stream

Observable get stream$ => _counter.stream;

Если вам нужно объединить потоки, используйте Rx.combineLatest2 вместо Observable.combineLatest2, поскольку последний теперь устарел.

person YEG    schedule 21.09.2020