【问题标题】:fetch store data in ngrx selector在ngrx选择器中获取存储数据
【发布时间】:2022-04-21 20:46:07
【问题描述】:

说在我的商店里,我有一个包含数据数组和索引的功能

{
    data: Data[],
    activeIndex: -1
}

我想做的是,每次activeIndex 更改时,我都会收到通知并得到data[activeIndex]

所以我有一个选择器

const selectActiveIndex = creatSelector(
    selectFeature,
    (feature) => feature.activeIndex
)

但是如何在我的组件中获得data[activeIndex]

谢谢

【问题讨论】:

    标签: ngrx ngrx-store ngrx-selectors


    【解决方案1】:

    您可以基于其他选择器组成一个选择器,在这里您可以将结果组合成一个结果。然后可以在组件中使用此组合选择器。

    const selectActiveIndex = creatSelector(
        selectFeature,
        (feature) => feature.activeIndex
    )
    
    const selectData = creatSelector(
        selectFeature,
        (feature) => feature.data
    )
    
    const selectActiveData = createSelector(
      selectActiveIndex,
      selectData,
      (idx, data) => data[idx]
    ) 
    

    零件:

    activeData$ = this.store.select(selectActiveData)
    
    constructor(private store:Store)
    

    【讨论】:

    • 嗨,我认为这个 selectActiveData 选择器会在每次 feature.data 或索引更改时更新,但实际上,我只想订阅索引更改。愚蠢的解决方案是在索引更改时查询存储以获取数据。只是不确定是否有更聪明的方法
    猜你喜欢
    • 1970-01-01
    • 2019-02-06
    • 1970-01-01
    • 2021-04-12
    • 1970-01-01
    • 1970-01-01
    • 2019-03-28
    • 1970-01-01
    • 2021-01-22
    相关资源
    最近更新 更多