Object value改變 該如何觸發onchanges

我有兩個component A、B
我從A傳遞一個object 給B,B用@input接收,object 假設如下{
header: {
left: ‘123’,
center: ‘456’,
right: ‘789’
},
events: [ ],
timeFormat: ‘H:mm’
}
這時候如果在A component的object events陣列中新增元素,這時候B並無法觸發onchanges()的function

請問有什麼方法可以確認 object 陣列裡面的值被改過或可以觸發onchanges?

確保每次都產生一個全新要傳遞的物件,這樣子就可以觸發 onChanges了

5個讚

可以多利用 spread , map , filter 來產生新的物件或陣列.

如:

let data = {  
    header: {  
        left: '123',  
        center: '456',  
        right: '789'  
    },  
    events: [],  
    timeFormat: 'H:mm'  
};  
data = { ...data, events: ['a'] };
1個讚

後來使用
data = Object.assign({},data);
來確保每次傳遞的物件都是新物件

記得是有另一個hook叫ngDoCheck的樣子可以做impure的檢查