【发布时间】:2023-02-20 13:40:06
【问题描述】:
我有一个角度应用程序,它在第一页上显示文章。我不希望 api 调用被执行两次,第一次在服务器端,一次在客户端,所以我使用传输状态来检查 api 是否已经被调用。如果我使用 REST API,一切正常,api 调用仅在服务器上执行,但是当我使用 apollo 添加 graphql 时,这似乎不起作用。
async ngOnInit() {
let myTransferStateKey = makeStateKey<any>('myDatas');
if (this.transferState.hasKey(myTransferStateKey)) {
console.log('HomeComponent ngOnInit hasKey');
this.transferState.get(myTransferStateKey, [])
this.transferState.remove(myTransferStateKey);
} else {
console.log('HomeComponent ngOnInit noKey');
this.posts = (await this.graphql.query(this.home_query)) as {
capital: string
currency: string
languages: []
name: string
native: string
}[]
this.transferState.set(myTransferStateKey, this.posts)
}
}
【问题讨论】:
标签: javascript angular graphql server-side-rendering angular-ssr