错误类型错误:"this.posts is undefined" - 在角度类型脚本类中



我在angular中有一个类型脚本类,如下

@Injectable({ providedIn: "root" })
export class PostsService {
private posts: Post[] = [];
private postsUpdated = new Subject<Post[]>();
constructor(private http: HttpClient) {}
getPosts() {
this.http
.get<{ message: string; posts: Post[] }>(
"http://localhost:3000/api/posts"
)
.subscribe(postData => {
this.posts = postData.posts;
this.postsUpdated.next([...this.posts]);
});
}
getPostUpdateListener() {
return this.postsUpdated.asObservable();
}
}

在getPosts方法中,我向节点服务器发出http请求,以获取数据并更新成员变量this.posts。但我在浏览器控制台中收到一个错误,如下所示-

错误类型错误:"this.posts is undefined">

通过stackoverflow上的这个问题,我发现这与回调方法中this关键字的使用有关。此外,我读到我的代码应该工作良好,因为我使用了箭头函数。我不知道是什么导致了这个错误。请帮忙。

您需要处理从后端检索未定义数据的情况。

如果后端没有post,只需添加OR条件即可分配一个空白数组。

.subscribe(postData => {
this.posts = postData.posts || [];
this.postsUpdated.next([...this.posts]);
});

相关内容

最新更新