tôi cập nhật @ngrx/effects từ 1.x để 2.xLàm cách nào để truy cập cây trạng thái có hiệu lực? (@ Ngrx/hiệu ứng 2.x)
Trong 1.x tôi có quyền truy cập của cây nhà nước có hiệu lực:
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 }));
Bây giờ trong 2 .x, nó chỉ cho tôi hành động. Vẫn còn một cách để tiếp cận cây trạng thái? Hoặc tôi nên tránh sử dụng như thế này bởi vì nó không phải là một thực hành tốt?
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 }));
Ngoài ra, nếu bạn sử dụng 'this.store.select (fromRoot.getUserIsCool)' bạn không phải sử dụng 'distinctUntilChanged()' ... đúng không? – Helzgate
Chuyển cửa hàng sang 'withLatestFrom' ném' TypeError: Bạn đã cung cấp đối tượng không hợp lệ trong đó luồng được mong đợi. Bạn có thể cung cấp một Observable, Promise, Array, hoặc Iterable.'. Nó hoạt động mặc dù. Bất kỳ ý tưởng tại sao tôi nhận được lỗi? –