[英]How to send data to nested component (parent-child(parent)-child)?
我有三個組件(C1,C2,C3)嵌套,這意味着C2在C1中被調用,而C3在C2中被調用。 我想通過屬性綁定將C1中的數據發送到C3。
在C1的模板中,我確實綁定了變量,該變量可以通過@Input在C2中接收,而在C2的模板中,我確實綁定了相同的變量(@Input),但我沒有進入C3。
僅當我將數據存儲在C2中的一個臨時變量中並在C2的模板中綁定(臨時)變量時,它才可以工作。
那么將數據存儲在臨時變量中是強制性的還是有任何解決方法?
當C1更新時,嵌套的C3組件也應更新。
出於好奇,我創建了一個簡單的stackblitz進行嘗試: https ://stackblitz.com/edit/angular-i18qg3
單擊“更新變量”按鈕時,它將更新rootVariable,該變量將綁定到C2,然后綁定到C3。
請檢查是否在C2或C3中將更改檢測更改為onPush。
摘自: https ://blog.angular-university.io/onpush-change-detection-how-it-works/#onpushchangedetection和直接對象可變性
發生這種情況是因為:
- 我們直接改變了用戶對象
- 但是OnPush通過比較組件輸入的引用來工作
- 因為我們沒有提供對新對象的引用,而是對現有對象進行了突變,所以未觸發OnPush更改檢測器
如果我們更改changeUserName()的實現以創建一個新的用戶實例而不是對現有實例進行突變 ,那么一切都會按預期進行
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.