我有一个返回Observable的服务,在获得响应后,我将响应映射并将结果分配给数组。
this.dataService.fetchData().subscribe(response =>{
[...this.DataMappingField ]= response.map(({ ID: id, Name: name }) => ({ id, name }));
});
在内部使用传播运算符进行订阅时,出现以下错误。
错误:类型'Modelclass'不存在属性'map'。
服务响应
[
{ID: 6197, Name: 'A', desc: null,catergory:'lap'},
{ID: 6198, Name: 'B', desc: null,catergory:'lap'}
]
在使用中,fetchData
方法:
fetchData(): Observable<Modelclass> {
return this.http
.get<Modelclass>(REQUEST_URL)
.pipe(
tap(response => response)
);
}
模型类:
export class Modelclass {
ID: any;
Name: string;
}
但是当使用方法进行调用时,以下代码可以正常工作
this.dataService.fetchData().subscribe(this.fetchResponse);
private fetchResponse(response): void => {
[...this.DataMappingField ]= response.map(({ ID: id, Name: name }) => ({ id, name }));
}
答案 0 :(得分:0)
我认为问题是响应键入不正确。 fetchData
方法的定义应如下所示:
fetchData(): Observable<Modelclass[]> {
return this.http
.get<Modelclass[]>(REQUEST_URL)
.pipe(
tap(response => response)
);
}
请注意,我正在使用 Modelclass[]
作为响应类型。