我想跟踪某个密钥在@ngrx/store 中订阅了多少次。我不想在每个订阅的组件中重复代码,但希望以某种方式连接到 select() 中。我认为@effects 不适用于这里,因为我没有查看已调度的操作。
有人对我将如何实现这一点有任何想法吗?
我想跟踪某个密钥在@ngrx/store 中订阅了多少次。我不想在每个订阅的组件中重复代码,但希望以某种方式连接到 select() 中。我认为@effects 不适用于这里,因为我没有查看已调度的操作。
有人对我将如何实现这一点有任何想法吗?
假设订阅一个键意味着从商店中选择一些东西。您可以尝试使用自己的服务扩展 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);
}
}