问题
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