Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Observable is deprecated in rxdart 0.23.1

I just upgraded to rxdart 0.23.1 and suddenly I am getting errors wherever I have used the Observable class. I have read about the breaking changes in the documentation and it has specified to use the rxdart_codemod package which I have integrated in my pubspec.yaml file and running the following command pub global activate rxdart_codemod throws the -bash: pub: command not found error. I have installed flutter properly and flutter doctor also seems to be running fine. Is there some other class that have replace Observable, couldn't find anything about it in the docs. Of course I can replace the Observable with the Stream from Dart language but really interested to know what path does the rxdart package takes as it specifies it is taking advantage of the dart extension.Using methods like combineLatest2 is not possible with Dart's Stream so it won't be a good choice for replacement?

like image 511
Pritish Avatar asked Dec 14 '19 15:12

Pritish


4 Answers

The Observable can be replaced by Stream as I mentioned in the question but if you are using methods like combineLatest2 from Observable, then just replace Observable by abstract class Rx so you can use Rx.combineLatest2

like image 102
Pritish Avatar answered Nov 07 '22 13:11

Pritish


Rxdart no longer needs a custom class to work.

It now relies on extension methods, which is a recent Dart feature (Dart 2.6) to implement all of the Observable features directly on Stream.

You can safely replace all your Observable by Stream.

like image 42
Rémi Rousselet Avatar answered Nov 07 '22 12:11

Rémi Rousselet


Use Rx.combineLatest2 rather than Observable.combineLatest2

Observable no longer work!

like image 15
goodBot Avatar answered Nov 07 '22 13:11

goodBot


You can use

flutter pub global activate rxdart_codemod 

instead of pub global activate rxdart_codemod.

Another option is to replace your Observable by Stream.

like image 5
Kartik Shandilya Avatar answered Nov 07 '22 12:11

Kartik Shandilya