簡體   English   中英

Angular 如何判斷@Input() 變化是否來自父組件

[英]Angular how to tell if @Input() changes come from parent component

我在 Angular 13 框架中編程,並且有一個 ChildComp.net,其中有一些@Input()的。 我正在嘗試確定何時從父組件修改我的輸入值。

我有一個“latLonPickerComponent”,它有@Input()的“緯度”和“經度”。 這些值在開始時將是“未定義的”,但稍后可能會更改為有效數字(一旦 http 請求在父級中完成運行)。 我想知道(在子組件中)這些新值何時來自父組件。

我已經研究過 ngOnChanges 以及 @Input-setter-getter 但是當子組件內的緯度和經度值發生變化時,這些方法似乎也會發生變化(除非我做錯了什么)

默認情況下,如果輸入值的引用發生變化,您將始終收到通知。 我相信,您要問的是 object 的任何屬性是否發生變化(但不是 object 本身)。

你看過這篇文章嗎: How to detect when an @Input() value changes in Angular?

你真的可以在輸入中使用 setter

你的孩子:

  <button (click)="name='other one'">change</button>

  name:string=null
  @Input('name') set _name(value: string)
  {
    console.log("Change parent")
    this.name=value;
  };

當從父級更改時,您會看到控制台“更改父級”,如果您單擊按鈕則不會。

查看stackblitz

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM