Вот код в моем сервисе:
import { TransferState, makeStateKey } from '@angular/platform-browser';
const PARTICULAR_BLOG_KEY = makeStateKey('particularBlog');
constructor(
private state: TransferState
)
getParticular(data): Observable<any> {
const found = this.state.hasKey(PARTICULAR_BLOG_KEY);
const dataSSR = Object.assign({}, this.state.get(PARTICULAR_BLOG_KEY, null as any));
if (found) {
return new Observable((observer) => {
observer.next(dataSSR);
});
} else {
return this.api.get('getBlog/' + data.id, null).pipe(map(response => {
this.state.set(PARTICULAR_BLOG_KEY, response);
return response;
}));
}
}
Я подписался на сервис и когда API правильно отображает компонент во время SSR, но объект обнуляется, когда данные достигают компонента, такМне нужно обновить страницу, когда я удалил часть this.state.set
, поток данных работал отлично, и мой компонент начал правильно отображать данные.
Вот компонент, который получает данные, искалеченные после подписки:
@Input() public set content(val: any) {
this.savedLocal = val;
this.blogItems = val;
this.setSlider();
}
Дочерний компонент имеет нулевые значения.Но исправлены, если я удаляю код состояния передачи.Так как мне отладить его или принудительно обновить данные в дочернем компоненте?