这是我服务中的代码:
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();
}
子组件的值都为空。但如果删除传输状态代码,则已修复。那么我应该如何调试它或强制更新子组件中的数据?