我可以在ngrx商店中“挂钩”订阅吗?

时间:2017-05-25 02:09:37

标签: ngrx-effects ngrx-store

我想跟踪@ ngrx / store中订阅某个密钥的次数。我不想在订阅的每个组件中重复代码,但希望以某种方式挂钩到select()。我不认为@effects适用于此,因为我不是在考虑调度行动。

有没有人对如何实现这个有任何想法?

1 个答案:

答案 0 :(得分:0)

假设订阅密钥意味着从商店中选择一些东西。 您可以尝试使用自己的服务扩展Store,然后使用它覆盖select方法,例如:

@Injectable()
class CountingStore<S> extends Store<S> {
    public keyCount: {[key:string]: number} = {};

    public select = (key: string) => {
        keyCount[key] = keyCount[key] ? keyCount[key] + 1 : 1;
        return super.select(key);
    }
}