ja aktualizowania @ngrx/effects od 1.x do 2.xJak uzyskać dostęp do drzewa stanu w efektach? (@ Ngrx/Efekty 2.x)
W 1.x mam dostęp drzewa państwowej w działaniu:
constructor(private updates$: StateUpdates<AppState>) {}
@Effect() bar$ = this.updates$
.whenAction(Actions.FOO)
.map(obj => obj.state.user.isCool)
.distinctUntilChanged()
.filter(x => x)
.map(() => ({ type: Actions.BAR }));
teraz w 2 .x, daje mi tylko akcję. Czy istnieje jeszcze sposób na uzyskanie dostępu do drzewa stanu? Czy powinienem unikać używania tego w ten sposób, ponieważ nie jest to dobra praktyka?
constructor(private actions$: Actions) {}
@Effect() bar$ = this.actions$
.ofType(ActionTypes.FOO)
.map((obj: any) => {
console.log(obj); // here is action only
return obj.state.user.isCool // so it is wrong here
})
.distinctUntilChanged()
.filter(x => x)
.map(() => ({ type: ActionTypes.BAR }));
Ponadto, jeśli używasz 'this.store.select (fromRoot.getUserIsCool)' nie musisz używać 'distinctUntilChanged()' ... prawda? – Helzgate
Przekazywanie magazynu do 'withLatestFrom' wyrzuca' TypeError: Podałeś niepoprawny obiekt, w którym oczekiwano strumienia. Możesz zapewnić Observable, Promise, Array lub Iterable. ". To działa. Każdy pomysł, dlaczego dostaję błąd? –