我正在使用 Angular 從我的 component.ts 檔案中呼叫 API。API 呼叫成功,但是我無法從我的回應中讀取資料。
如果我從 列印event,我可以獲取資料,但是如果我從 this.book 列印,則沒有資料。
我得到的錯誤是 error TS2339: Property 'name' does not exist on type '{}'.
組件.ts
ngOnInit(): void {
this.activatedRoute.paramMap.subscribe((params: ParamMap) => {
this.id = params.get('id');
this.api.GetBook(this.id).then((event) => {
this.book = event;
console.log(event.name)// I can get response
console.log(this.book.name) //Error
});
})
event 或 this.book 中的資料是:
{__typename: 'Book', id:'1', name: "test"}
uj5u.com熱心網友回復:
你可以像下面這樣迭代this.book。
console.log(this.book['name'])
或者您必須將 book 初始化為物件型別
public book = {}
祝你好運
uj5u.com熱心網友回復:
您可以嘗試以下方法:
console.log(this.book['name']);
uj5u.com熱心網友回復:
您可以為事件引數分配一個型別,這將擺脫型別錯誤
this.api.GetBook(this.id).then((event: { id: string; name: string }) => {
...
}
或者更好的方法是為 GetBook 方法分配回傳型別
GetBook(id):Promise< { id: string; name: string }> {
return new Promise((resolve, reject) => {...});
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/516441.html
標籤:有角度的aws-放大
