iT邦幫忙

0

angular Component lifecycle 與 input的取得

假定放了一個item進入一個component app-item

<app-item *ngFor="let item of items; let i = index" [item]="item"></app-item>

[item]
的內容舉例來說:

item = {
    a:'a',
    b:'b',
    c:[{a:'a', b:'b'},{a:'a', b:'b'},...,{a:'a', b:'b'}]
}

若在ngOnInit()裡面,console.log(item)是看的到c,但console.log(item.c)取不到,會顯示undefind,但可以取的到a,b,有點弔詭。
取得c必須要在,ngDoCheck(),ngAfterContentChecked(),ngAfterContentChecked() ngAfterViewChecked()之中,這些都會連續監測,但不清楚這樣效能好不好,這樣每次變動之間會以重新刷刷新一次變數。怎麼去劃分這幾個lifecycle的差異比較適當,看說明不是很懂

ngOnInit(){
    console.log(item); // 看的到C
    console.log(item.c) //undefind
    console.log(item.a) //取的到
    console.log(item.b) //取的到
}
ngDoCheck(){
    console.log(item.c)//空個幾次後取得到
}

尚未有邦友回答

立即登入回答