簡體   English   中英

將父組件值作為參數傳遞給子組件

[英]Passing a parent component value as param in child component

我正在通過@Input裝飾器從父組件向子組件發送字符串name 然后將此字符串name作為參數輸入到子組件中的函數中。

因此,每次觸發父組件中的事件(例如,單擊)時,都會導致該name值發生更改,進而影響子組件中的功能(因為它將name作為參數)。 這是我的子組件的片段:

@Input() name: string;

ngOnChanges() {
  this.childFunction(this.name);
}

我現在面臨的問題是子視圖保留了上一個函數調用中的值。 在父項中的每個后續單擊中,它只是添加新的輸出,當我希望它刪除舊的輸出並用它替換新的輸出時。

更新:我找到了一種解決方案,但不確定是否正確。 基本上,由於子函數返回一個對象數組,因此我只是在每個函數調用的開始清空該數組。 這似乎已經解決了問題。

ngOnInit對於一個組件只能運行一次。 請改用ngOnChanges。 在此處查看文檔: https : //angular.io/docs/ts/latest/guide/lifecycle-hooks.html#!#onchanges

每當Angular檢測到組件(或指令)輸入屬性的更改時,便調用其ngOnChanges()方法。 本示例監視OnChanges掛鈎。

ngOnChanges(changes: SimpleChanges) {
  for (let propName in changes) {
    let chng = changes[propName];
    let cur  = JSON.stringify(chng.currentValue);
    let prev = JSON.stringify(chng.previousValue);
    this.changeLog.push(`${propName}: currentValue = ${cur}, previousValue = ${prev}`);
  }
}

暫無
暫無

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

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