Observable ist in rxdart 0.23.1 veraltet


14

Ich habe gerade ein Upgrade durchgeführt rxdart 0.23.1und plötzlich erhalte ich Fehler, wo immer ich die ObservableKlasse verwendet habe. Ich habe in der Dokumentation über die wichtigsten Änderungen gelesen und angegeben, dass das rxdart_codemodPaket verwendet werden soll, das ich in meine pubspec.yamlDatei integriert habe , und dass das Ausführen des folgenden Befehls pub global activate rxdart_codemodden -bash: pub: command not foundFehler auslöst. Ich habe flutterrichtig installiert und flutter doctorscheint auch gut zu laufen. Gibt es eine andere Klasse, die ersetzt hat Observable, konnte nichts darüber in den Dokumenten finden. Natürlich kann ich die Sprache Observabledurch die Streamvon Dart ersetzen, bin aber sehr interessiert zu wissen, welchen Weg das rxdartPaket nimmt, da es angibt, dass es die dart extension.Verwendungsmethoden nutzt, mit denen dies combineLatest2nicht möglich istDart's Stream Also ist es keine gute Wahl für den Ersatz?

Antworten:


25

Das Observablekann durch ersetzt werden, Streamwie ich in der Frage erwähnt habe. Wenn Sie jedoch Methoden wie combineLatest2from verwenden Observable, ersetzen Sie es einfach Observabledurch eine abstrakte Klasse, Rxdamit Sie es verwenden könnenRx.combineLatest2


20

Rxdart benötigt keine benutzerdefinierte Klasse mehr, um zu funktionieren.

Es basiert jetzt auf Erweiterungsmethoden, bei denen es sich um eine neuere Dart-Funktion (Dart 2.6) handelt, um alle ObservableFunktionen direkt zu implementieren Stream.

Sie können alle Ihre Observabledurch sicher ersetzen Stream.


3
Korrigieren Sie die Schreibweise von Stream
Nudge

Wie verwende ich dann Methoden wie combinLatest2 mit Stream, das wird nicht möglich sein
Nudge

4

Sie können verwenden

flutter pub global activate rxdart_codemod 

statt pub global activate rxdart_codemod.

Eine andere Möglichkeit ist, Ihre Observabledurch zu ersetzen Stream.


3

Verwenden Sie Rx.combineLatest2 anstelle von Observable.combineLatest2

Beobachtbar funktioniert nicht mehr!


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.