我正在使用httpclient请求从wordpress API获取数据,作为响应,我遇到了错误。似乎Array有问题。 这是我正在使用的代码
getTetimonialData() {
this.http.get<{ testimonials: any }>(BASE_URL + '/testimonial/').pipe( map( testimonialsData => {
// return testimonialsData;
return {
testimonials: testimonialsData.testimonials.map(testData => {
return {
id: testData.id,
date: testData.date,
slug: testData.slug,
title: {
rendered: testData.title.rendered,
},
yoast_meta: {
yoast_wpseo_title: testData.yoast_meta.yoast_wpseo_title,
yoast_wpseo_metadesc: testData.yoast_meta.yoast_wpseo_metadesc,
yoast_wpseo_canonical: testData.yoast_meta.yoast_wpseo_canonical,
},
acf: {
video_url: testData.acf.video_url,
video_image: {
url: testData.acf.video_image.url,
alt: testData.acf.video_image.alt,
}
}
};
})
};
})).subscribe(transformData => {
this.testimonials = transformData.testimonials;
console.log(this.testimonials);
this.testimonialFetch.next(this.testimonials);
});
}
这是错误
ERROR TypeError: Cannot read property 'map' of undefined
我什至尝试使用tesimonialData.map
,因为响应已经在Array中了,但这也显示出警告类型是不允许的。
此错误适用于我不使用rxjs map函数遍历数据的行。
所以我做错什么了吗?
答案 0 :(得分:1)
您的GET请求类型不正确。下面是您在评论中共享的URL的图片。
它应该是this.http.get<{ testimonials: any }>...
类型,而不是this.http.get<any[]>...
,因为响应是推荐列表,而不是具有testimonials
属性的对象。理想情况下,您应该有一个用于类型安全的接口,因此可能不是any[]
而是ServerTestimonial[]
。
答案 1 :(得分:0)
您能否也回答这个问题 Angular Resolver issue
对不起,没有什么好评论的名声