Obserwowalne jest przestarzałe w rxdart 0.23.1

14

Właśnie uaktualniłem rxdart 0.23.1i nagle otrzymuję błędy wszędzie tam, gdzie korzystałem z Observableklasy. Czytałem o rozbijających zmian w dokumentacji i podał do korzystania z rxdart_codemodpakietu, który mam zintegrowaną w moim pubspec.yamlpliku, uruchamiając następującą komendę pub global activate rxdart_codemodrzuca -bash: pub: command not foundbłąd. Zainstalowałem flutterpoprawnie i flutter doctorwydaje się, że działa dobrze. Czy jest jakaś inna klasa, która zastąpiła Observable, nie mogła znaleźć nic na ten temat w dokumentacji. Oczywiście mogę zamienić na Observablez Streamjęzyka Dart, ale naprawdę chciałbym wiedzieć, jaką ścieżkę rxdartprzyjmuje pakiet, ponieważ określa, że ​​korzysta z dart extensionmetod. Korzystanie z takich metod combineLatest2jest niemożliwe zDart's Stream więc nie będzie to dobry wybór na wymianę?

Szturchać
źródło

Odpowiedzi:

25

ObservableMoże być zastąpiony przez Streamjak wspomniano w pytaniu, ale jeśli używasz metody jak combineLatest2z Observable, a potem po prostu zastąpić Observableprzez abstrakcyjnej klasy Rx, dzięki czemu można używaćRx.combineLatest2

Szturchać
źródło
20

Rxdart nie potrzebuje już niestandardowej klasy do działania.

Teraz opiera się na metodach rozszerzenia, które są najnowszą funkcją Dart (Dart 2.6), umożliwiającą bezpośrednie wdrożenie wszystkich Observablefunkcji Stream.

Można bezpiecznie wymienić wszystkie swoje ObservableBy Stream.

Rémi Rousselet
źródło
3
Popraw pisownię Stream
Posuń Grudnia
Więc jak użyć metod takich jak CombatLatest2 ze Streamem, to nie będzie możliwe
Posuń
4

Możesz użyć

flutter pub global activate rxdart_codemod 

zamiast pub global activate rxdart_codemod.

Inną opcją jest zastąpienie twojego Observableprzez Stream.

Kartik Shandilya
źródło
3

Użyj Rx.combineLatest2 zamiast Observable.combineLatest2

Obserwowalne już nie działa!

goodBot
źródło
0

Rxdart teraz implementuje to w RX .combineLatest2

Franco Macri
źródło