【发布时间】:2020-12-13 07:09:13
【问题描述】:
我有一个父组件正在创建三个相同的子组件。孩子们有一个输入,该输入对应于一些格式化为数组的自动完成数据。但是,当我尝试在父级的 ngOnInit 中填充数组然后将其传递给其中一个子级时,子级会收到 undefined 作为数组实例。如果我尝试将 null 作为输入传递,则会发生同样的事情。
我只是想知道生命周期是否导致了这种情况,我应该使用 ngAfterInit 或其他什么来代替?
父组件
<app-alert-chip-list [autocompleteData]="targetGroupAutocomplete"></app-alert-chip-list>
<app-alert-chip-list [fArray]="alertContacts" [autocompleteData]="null"></app-alert-chip-list>
...
ngOnInit() {
this.targetGroupAutocomplete = ['This is the first autocomplete', 'This is a second sentence that is a longer sentence than the first autocomplete', 'This'];
}
子组件
@Input() fArray: FormArray;
@Input() autocompleteData: string[];
constructor(private formBuilder: FormBuilder) { }
ngOnInit() {
if(this.autocompleteData && this.autocompleteData.length != 0) {
this.usesAutocomplete = true;
}
console.log("AC:", this.autocompleteData); //Ends up printing undefined
}
【问题讨论】:
-
你能在 stackblitz 中重现它吗?
-
子组件内部从 ngOnInit 更改为 ngAfterViewInit
标签: angular