【发布时间】:2021-08-03 03:37:28
【问题描述】:
我的 HTML 组件中不断收到 Cannot read property 'id' of undefined 的错误
<button (click)="getRecipeDetails()">Show</button>
<div>
<div [innerHTML]="recipeInformation.id"></div> <br>
<div [innerHTML]="recipeInformation.title"></div> <br>
<div [innerHTML]="recipeInformation.summary"></div> <br>
<div [innerHTML]="recipeInformation.dishTypes"></div> <br>
</div>
这是我在组件 TS 中制作的代码:
export class AppComponent {
recipeInformation:Recipe;
constructor(private http: HttpClient){}
// Get Recipe Details:
getRecipe(id:any='782698'): Observable<Recipe[]> {
let params = new HttpParams().set('apiKey',Constants.API_KEY)
return this.http.get(URL,{params}).pipe(
map(json: Object) => [json].map(jsonItem => Recipe.fromJson(jsonItem)))
);
}
getRecipeDetails(){
this.getRecipe().subscribe(
recipes => this.recipeInformation = recipes[0]
)
}
这是我的 recipe.ts 类:
export class Recipe{
constructor(public id: number,
public title: string,
public summary: string,
public dishTypes: []) {
}
public static fromJson(json: Object): Recipe {
return new Recipe(
json['id'],
json['title'],
json['summary'],
json['dishTypes']
);
}
}
单击显示按钮后,数据可以正常检索,但在调用 API 前后,此错误不断出现。
【问题讨论】: