Ngrx - state management.

0

Ostatnio przysiadłem do nauki NGRX. Idea jak najbardziej mi się podoba, jednak napotkałem dwa dość (według mnie) istotne problemy. Pierwszy w jaki sposób wykonywać przekierowania korzystając z ngrx? Nie mogę tego wyłapać subskrypcją w komponencie, ze względu na fakt że jakakolwiek zmiana w state, będzie za sobą pociągała ponowne przekierowaniem. Czy powinienem utworzyć kolejną akcję, którą bym wywołał? Tylko co wtedy ze statem? Bo w teorii i w praktyce, stan by się w ogóle nie zmienił. Druga sprawa jest związana z pierwszą. Wykorzystuję toasty do error handlingu / wyświetlania informacji o poprawnym wykonaniu requesta. W jaki sposób to zaimplementować? Również jakakolwiek zmiana pociągnie za sobą ponowne wyświetlenie. Myślałem, żeby po wyświetleniu informacji dispatchować jakąś akcję która by mi wyczyściła error. O ile w teraźniejszym projekcie wiele to nie zmienia, o tyle jeżeli nastałaby potrzeba żeby wyświetlić błąd na stronie, po wyświetleniu toastu, gubię informację o błędzie.

1

Dla mnie to co opisałeś to side effecty. W side effect nasłuchujesz akcji po której zrobisz przekierowanie (side effect jest odpalany po zmianie state). Najlepiej żeby komponent nie wiedział o przekierowaniu a decider był w side effect. Natomiast toasty to samo. Chcesz wyświetlić błąd to, dispatchujesz w side effect akcję z błędem po nieudanej operacji. W side effect nasłuchujesz wszystkich errorowych akcji (lub jednej) i pokazujesz error. Nawet state nie musisz zmieniać bo po co ci error w state skoro to toast. A toast jako element html powinien sam zanikać.

1 użytkowników online, w tym zalogowanych: 0, gości: 1