angular - 自定义 rxjs 商店的选择器功能
问题描述
我有这个选择器功能,它可以帮助我选择自定义商店的一部分,但只能选择一部分或整个商店。
select<K>(mapFn: (state: T) => K): Observable<K> {
return this.internalState$.asObservable().pipe(
map((state: T) => mapFn(state)),
distinctUntilChanged()
);
}
我像这样使用它
this.title$ = this.store.select((s) => s.title)
工作正常,但我遇到了需要两个状态的情况。我像这样解决了它,
this.store.select((s) => s).pipe(map((m) => ({ date: m.date, zone: m.zone })))
或者使用我需要的属性或使用带有所选状态的 combineLatest 选择整个商店并在下一个管道中。
有没有办法创建一个选择器来选择商店的属性?我以前用过Pick<T>
,但我不知道如何在这里应用它。
解决方案
.select((s) => s)
自己不做任何事情。
相反,您应该这样做:
this.store.select(s => ({ date: s.date, zone: s.zone })).pipe(
)
推荐阅读
- http - Google Cloudfunction 中的最大并发 http 连接数
- c - 使用 stm32f042 作为 spi 从机
- python - 具有不相等行和列的两个二维 numpy 数组的交集
- html - 如何仅使用 CSS 在 HTML 按钮上添加 FontAwsome 图标?
- forecasting - 如何使用 season() 函数在 Fable - R Package 中实现每小时和每周的季节性?
- javascript - 如何在另一个中显示来自一个 python django 模板的 javascriptfunctions 结果?
- java - 没有映射器的java流收集器?
- javascript - 如何将一组值跳过到从 javascript 动态创建的表的第一个 td?
- javascript - 动画角度动态进度条渐变与颜色停止
- java - 使用 Batik 将 svg 转换为图像时出现 TranscoderException