RxJS v Reactu

Přecházíme z MobX na RxJS (abychom používali jeden standard pro observables, ne 2). MobX funguje velmi dobře, ba až zázračně out-of-the-box s Reactem. Změní se hodnota, změní se co je vyrendrované. Tahle jeho zázračnost je však zároveň jeho slabou stránkou. Jsou případy, kdy prostě nefunguje, blbne a proto přecházíme na více průhledné Rx.

Pokud mám nějaký stav v RxJS observable, a mám komponentu ve které chci vždy vykreslovat podle aktuální hodnoty té observable, udělal jsem na to statefull komponentu ObservableContentComponent.

Je tam však drobný problém s časováním, pokud přiteče hodnota ještě dřív, než renderovaná react komponenta, komponenta se nedostane k první (případně aktuální hodnotě která už přitekla), ale čeká na další.

Napsal jsem na to utilitu observableWithInitial, která bere observable A a hodnotu B a vrátí observable C, do které za immediate přiteče hodnota B a zároveň do ní budou přitékat nové hodnoty z observable A.

<ObservableContentComponent
content={observableWithInitial(
this.systems.routingSystem.path.values,
this.systems.routingSystem.path.value,
)…..

Zároveň mám takové trochu tušení, zda nevymýšlím kolo a zda není nějaké jednodušší a oficiální řešení, jak elegantně regenerovat Rx observables v rámci Reactu?

Autor

Pavol Hejný

Milovník technologií, Startuper ve vzdělávání, autor virtuální tabule Collboard.com, full stack vývojář a spoluorganizátor mnoha akcí např. CzechFutureTech.

4 komentáře u „RxJS v Reactu“

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *