1
私はこの記事を読んでいるので、Querying a Normalized State with RxJS in Angularのように自分のセレクタをマージしています。 グループプロパティに基づいてオブジェクトのリスト::オブジェクト[]マップ[] []オブジェクトにしかし、私は...rxjsフローとngrxセレクタの問題
GOALそれらのいずれかで問題があります。
シンプルなケース:
const a = [
{a:2, b:'d'},
{a:2, b:'e'},
{a:3, b:'f'},
{a:1, b:'b'},
{a:1, b:'c'},
];
const a$ = Rx.Observable.of(a);
a$
.switchMap(items => Rx.Observable.from(items))
.groupBy(item => item.a)
.mergeMap(group => group.toArray())
.toArray()
.subscribe(console.log)
<script src="https://cdnjs.cloudflare.com/ajax/libs/rxjs/5.4.1/Rx.min.js"></script>
しかし、観測可能なソースはngrxセレクタによって提供されている場合、私はそれがmergeMap演算子を渡しません...何も結果を持っていません。
products$: Observable<Product[]> = this._store.select(state => state.product.products);
this.products$
.switchMap(products => Observable.from(products))
.groupBy(product => product.productGroup.id)
.mergeMap(group => group.toArray())
.toArray()
.subscribe(console.log)
前に再選択して、それが働いていた:
export const getProductGroups = createSelector(getProducts, (products) => {
let productGroups: Product[][] = [];
Observable.from(products)
.groupBy(product => product.productGroup.id)
.mergeMap(group => group.toArray())
.toArray()
.subscribe(pgs => productGroups = pgs);
return productGroups;
});
なぜ誰かが知っていますか?
は、なぜあなたは先頭に 'switchMap'が必要なのでしょうか?なぜあなたは別の観測の内容から新しい観測を再現したいのですか?私はあなたがちょうどこの行を削除することができるように感じ、私は間違っていますか? – atomrc