如何解决如何直接在ngxs选择器上使用rxjs管道
在视图中,似乎无法找到一种直接与选择器中的数据直接交互的优雅方法。类似于按ID或其他动态值排序。
我知道我可以使用动态/惰性选择器,但有时我不想将属性添加到状态中只是为了完成一个简单的UI任务。
例如,如果我想从currentJobsstories $中获取第一个值并将其设置为init上的“活动”故事,我没有简单的方法。
@Select(StoryState.currentJobsstories) currentJobsstories$: Observable<Story[]>;
ngOnInit(): void {
this.currentJobsstories$.pipe(
map(story => {
this.filteredStories = [...story];
return story;
}),);
}
即使我正在html中订阅异步管道,也永远不会执行管道内部的代码。
有没有一种方法可以简单地将选择中的数据插入管道?
解决方法
如果仅出于此组件的目的要转换Selector
的结果,则需要定义一个新的Observable
以在模板中使用(您已经 在这里完成,只是缺少分配。)
@Select(StoryState.currentJobsStories) currentJobsStories$: Observable<Story[]>;
myCurrentJobsStories$: Observable<Story[]>;
ngOnInit(): void {
this.myCurrentJobsStories$ = this.currentJobsStories$.pipe(
map(story => {
this.filteredStories = [...story];
return story;
}),);
}
然后,在组件模板中,您需要通过Observable
订阅新的myCurrentJobsStories$ | async
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。