我有一个带有以下构造函数的search.component:
constructor(private searchService: SearchService,
private store: Store<any>) {
this.searchService.search(this.searchTerm$)
.subscribe(results => {
this.store.dispatch(new StoreSearchActions(results));
this.router.navigate(['/store-search']);
});
}
然后我有一个search-view.component像这样:
ngOnInit() {
this.store.select(STORE_SEARCH_STATE).subscribe((searchResults) => {
console.log("STORE searchResults -> ", searchResults)
});
}
最后,该服务如下所示:
search(terms: Observable<string>) {
return terms.debounceTime(400)
.distinctUntilChanged()
.switchMap(term => this.searchEntries(term));
}
一旦用户开始输入输入(search.component),它将被重定向到搜索视图,在该视图中,该组件被订阅到由search.component的分派填充的商店中。
问题在于,当第一次加载search-view.component时,它是未定义的console.log(searchResults)
。如果您继续键入,则根本没有日志,就像订阅从未工作过一样。
我不确定为什么在调试时订阅不带任何内容,我可以看到数据在操作前后传递,然后传递到reducer。