在我的Angular项目中,编写以下代码时,我从TSLint收到不匹配的查询和集合更新错误:
export class SomeComponent implements OnInit {
private wishes: Wish[];
constructor(private service: Service) {}
ngOnInit() {
this.service.subscribe(wishes => {
this.wishes = wishes;
}
}
我得到了查询集合'wishes'的内容,但从未更新(我在代码中对其进行了进一步查询)。但是,我不明白为什么会收到错误消息,因为每次收到订阅的请求时都会更新集合。它与subscribe块中发生的更新有关吗? 预先感谢。
答案 0 :(得分:1)
删除私人用户。如果您在全局变量中使用private且没有getter和setter方法,则不是好习惯。
export class SomeComponent implements OnInit {
wishes: Wish[];
constructor(private service: Service) {}
ngOnInit() {
this.service.subscribe(wishes => {
this.wishes = wishes;
}
}
}
使用吸气剂和吸气剂:
export class SomeComponent implements OnInit {
private wishes: Wish[];
constructor(private service: Service) {}
ngOnInit() {
this.service.subscribe(wishes => {
setWishes(wishes);
}
}
getWishes(): Wish[] {
return this.wishes;
}
setWishes(wishes: Wish[]) {
this.wishes = wishes;
}
}
取决于运行的服务器,使用私有服务器可能会给您带来产品问题,因此我会坚持第一种解决方案。
您可以运行ng build --prod
来测试产品代码