我有兩個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的檢查