我想基於路由參數,以獲得特定項目,例如,{ key: "321" }
,從ngrx/store
。我得到它的工作是這樣的:拼合可觀察到的
this.route.params
.map((params: any) => params.key)
.mergeMap((key: string) => {
return this.store.select(state => state.items)
.mergeMap((items: Observable<any[]>) => items)
// .do(item => console.log(item, key))
.filter((item: any) => item.key === key);
})
.take(1)
.subscribe(console.log);
其中state.items
爲對象的數組,如:[ {key: "1"}, {key: "2"}, ...]
填充隨着時間的推移。
我想知道有沒有更好/不同的方式來做到這一點?
此外,爲什麼我會在.take(1)
之前獲得相同的項目倍數(state.items.length
)倍?
你想從你們店裏的物品數組提取多個項目?如果是這樣的話,你的代碼可以被優化。 – KwintenP
@KwintenP我需要通過特定屬性的值從列表中獲取項目。例如,對於url「/ items/123」,值爲** 123 **,屬性爲**鍵**。 – Sasxa