[英]Angular update @Input() Object
我有一個自定義接口的 GameStats 對象。 如果我更改屬性的值,子組件將無法識別它。 我找到了沒有被解雇的 ngOnChanges 和仍然包含舊值的 ngDoCheck 的解決方案。
我的示例代碼:
app.component.html
<app-settings [gameStats]="gameStats"></app-settings>
app.component.ts(更新屬性)
onRunningStatusChanged(event: any) {
this.gameStats.gameRunning = event;
}
settings.component.ts
@Input() gameStats!: GameStats;
更改檢測不會進行深度對象比較,它只檢查引用是否相同,並且在您的情況下是相同的。 您可能希望將onRunningStatusChanged
處理程序更改為:
onRunningStatusChanged(event: any) {
this.gameStats = {...this.gameStats, gameRunning: event};
}
這會為this.gameStats
分配一個新對象,該對象具有所有屬性,但會覆蓋gameRunning
屬性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.