Observable is deprecated in rxdart 0.23.1

為{幸葍}努か 提交于 2020-08-22 07:31:07

问题


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?


回答1:


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




回答2:


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.




回答3:


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.




回答4:


Use Rx.combineLatest2 rather than Observable.combineLatest2

Observable no longer work!




回答5:


Rxdart now implements it in RX.combineLatest2




回答6:


rxdart document changelog 0.23.0 :

ValueObservable -> ValueStream
ReplayObservable -> ReplayStream
ConnectableObservable -> ConnectableStream
ValueConnectableObservable -> ValueConnectableStream
ReplayConnectableObservable -> ReplayConnectableStream


来源:https://stackoverflow.com/questions/59336428/observable-is-deprecated-in-rxdart-0-23-1

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!