У меня есть 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), он перенаправляется в представление поиска, где компонент подписан на магазин, который был заполнен отправкой поиска.component Проблема в том, что при первой загрузке search-view.component это не определено console.log(searchResults)
И если вы продолжаете печатать, журнала вообще нет, например, если подписка никогда не работала.Я не уверен, почему подписка ничего не приносит, когда во время отладки я вижу данные, передаваемые вокруг действия, а затем в редуктор.