簡體   English   中英

Angular:輸入綁定未更新

[英]Angular: input binding not updating

我目前在嘗試將列表綁定到 Angular 中的輸入 object 時遇到問題。 我希望每次添加到列表時子項中的插值都會更新,但是原始加載的值在視圖中保持不變。 即使 OnChange 沒有觸發,我已經為此苦苦掙扎了好幾個小時,任何幫助都將不勝感激。

家長

<main-task-list [in-list]='list_values'></main-task-list>
@Component({
   selector: 'main-app',
   templateUrl: './main-app.component.html',
   styleUrls: ['./main-app.component.sass']
})
export class MainAppComponent implements OnInit {
  list_values = [ 10, 20, 30 ]

   add_to_list(){
      this.list_values.push(12)
      console.log( this.list_values )
   }
}

孩子

<div>{{in_list}}</div>
@Component({
  selector: 'main-task-list',
  templateUrl: './main-task-list.component.html',
  styleUrls: ['./main-task-list.component.sass']
})
export class MainTaskListComponent implements OnInit {
  @Input( 'in-list') in_list: number[] | null = null

  ngOnChanges( changes: SimpleChanges ){
     console.log('re render')
  }
}

當您向其中推送值時,您的項目的引用不會改變。 它需要改變。 嘗試創建一個新項目, ngOnChange將再次觸發:

this.list_values = [...this.list_values,12]

代替

this.list_values.push(12)

暫無
暫無

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

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