【发布时间】:2021-06-03 16:12:25
【问题描述】:
我使用 changeDetection 策略,它工作正常,但是当我回来时我的组件被破坏时,我保存了最后一个值。
示例我向子组件提供 3 个值,然后当我再次尝试支持数据时转到另一个组件,我看到了我的最后一个值..
示例道具值 1 、 2 和 3。 我看到了我的最后一个值 3。 如何摧毁它?
检查代码和父组件:
<div class="row">
<app-poi-address [poiPin]="pinedAddress"></app-poi-address>
</div>
this.pinedAddress = $event;
子组件:
@Component({
changeDetection: ChangeDetectionStrategy.OnPush
})
export class PoiAddressComponent implements OnInit, OnChanges {
@Input () poiPin!: Object
public allPin: any[] = [];
constructor() { }
ngOnInit(): void {
console.log('datica' , this.poiPin);
}
ngOnChanges(): void {
console.log('HelloComponent: Change Detection count = ' , this.poiPin);
this.allPin.push(this.poiPin)
}
}
<div *ngFor="let d of allPin ">
<p> {{ d?.coords?.lat }} </p>
</div>
保存的最后一个值。我想清除 allPin 的所有数组...
【问题讨论】:
-
你可以在 ngOnInit 中初始化它
-
什么?我需要 ngOnChange 因为我推动点击项目...?我不明白你在说什么?
-
PoiAddressComponent 的父级是否也被破坏了?如果没有,则父级保留 pinedAddress 的最后一个值,下次 PoiAddressComponent 再次重新创建最后一个 pinedAddress 传递给 PoiAddressComponent 时,您将获得最后一个值“3”。
-
请不要破坏您的帖子。
-
我需要不用担心
标签: javascript html css angular