Android開發(fā)中父組件調(diào)用子組件方法demo
正文
在一些非常罕見的情況下,你可能需要直接從父組件中調(diào)用子組件的方法。一般來說,這應(yīng)該被看作是最后的手段。在大多數(shù)情況下,組件通信應(yīng)該限于數(shù)據(jù)綁定(包括輸入和輸出),以及在某些情況下,使用服務(wù)在兩個組件之間發(fā)送值。
然而,有些時候,我在兩個組件之間出現(xiàn)了競賽條件,而這些條件只有通過非常精確的方法調(diào)用順序才能解決。這意味著,我需要它們同步發(fā)生。為此,這個方法是一個救命稻草,而且也很簡單
考慮到我有以下組件
@Component({ selector: 'app-parent', templateUrl: './parent.component.html', styleUrls: ['./parent.component.scss'] }) export class ParentComponent implements OnInit { }
子組件:
@Component({ selector: 'app-child', templateUrl: './child.component.html', styleUrls: ['./child.component.scss'] }) export class ChildComponent implements OnInit { callMe(value : string) { console.log('Called : ' + value); } }
在parent.component.html的視圖中,我放置了子組件:
<app-child></app-child>
現(xiàn)在在我的父組件中,我可以像這樣使用ViewChild來獲得對子組件的直接引用:
export class ParentComponent implements OnInit { @ViewChild(ChildComponent, {static : true}) child : ChildComponent; }
注意,我沒有像我們有時使用ViewChild那樣傳入一個 "字符串 "來查找,我們傳入的是我們正在尋找的組件的實(shí)際類型。
組件調(diào)用
然后,這就像在我們的孩子身上調(diào)用一些東西一樣簡單:
export class ParentComponent implements OnInit { @ViewChild(ChildComponent, {static : true}) child : ChildComponent; callMyChild(){ child.callMe('Calling from the parent!'); } }
然而,通常的ViewChild規(guī)則適用,一般來說,你只能在視圖初始化后訪問ViewChild引用(所以你不能在ngOnInit方法中訪問它們,你必須使用ngAfterViewInit)。
同樣,使用數(shù)據(jù)綁定或 "連接服務(wù) "來讓兩個組件進(jìn)行通信通常會好得多。但往往很難同步需要發(fā)生的動作的精確順序。因此,對于這一點(diǎn),ViewChild是贏家。
以上就是Android開發(fā)中父組件調(diào)用子組件方法demo的詳細(xì)內(nèi)容,更多關(guān)于Android父組件調(diào)用子組件的資料請關(guān)注腳本之家其它相關(guān)文章!
- Android Jetpack導(dǎo)航組件Navigation創(chuàng)建使用詳解
- Android性能優(yōu)化之RecyclerView分頁加載組件功能詳解
- Android開發(fā)組件化架構(gòu)設(shè)計(jì)原理到實(shí)戰(zhàn)
- Android開發(fā)組件flutter的20個常用技巧示例總結(jié)
- Android開發(fā)Jetpack組件DataBinding用例詳解
- Android開發(fā)Jetpack組件WorkManager用例詳解
- Android開發(fā)Jetpack組件Room用例講解
- 詳解Android中通過Intent類實(shí)現(xiàn)組件間調(diào)用的方法
相關(guān)文章
詳解Android StrictMode嚴(yán)格模式的使用方法
這篇文章主要介紹了Android StrictMode嚴(yán)格模式的使用方法,需要的朋友可以參考下2018-01-01Android四大組件之Service服務(wù)詳細(xì)講解
Android的服務(wù)是開發(fā)Android應(yīng)用程序的重要組成部分。不同于活動Activity,服務(wù)是在后臺運(yùn)行,服務(wù)沒有接口,生命周期也與活動Activity非常不同。通過使用服務(wù)我們可以實(shí)現(xiàn)一些后臺操作,比如想從遠(yuǎn)程服務(wù)器加載一個網(wǎng)頁等,下面來看看詳細(xì)內(nèi)容,需要的朋友可以參考下2022-07-07Android開發(fā)自學(xué)筆記(三):APP布局上
這篇文章主要介紹了Android開發(fā)自學(xué)筆記(三):APP布局上,本文講解了添加ViewGroup、添加ViewGroup、定義string內(nèi)容、添加Button、運(yùn)行程序查看效果等內(nèi)容,需要的朋友可以參考下2015-04-04Android實(shí)現(xiàn)從底部彈出的Dialog的實(shí)例代碼
這篇文章主要介紹了Android實(shí)現(xiàn)從底部彈出的Dialog的實(shí)例代碼,非常不錯,具有參考借鑒價值 ,需要的朋友可以參考下2018-04-04Android實(shí)現(xiàn)apk插件方式換膚的實(shí)例講解
在本篇文章里小編給大家整理的是關(guān)于Android實(shí)現(xiàn)apk插件方式換膚的實(shí)例代碼以及相關(guān)知識點(diǎn),有需要的朋友們學(xué)習(xí)下。2019-10-10Kotlin的Collection與Sequence操作異同點(diǎn)詳解
這篇文章主要介紹了Kotlin的Collection與Sequence操作異同點(diǎn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10Kotlin?Flow數(shù)據(jù)流的3種使用場景詳解
這篇文章主要為大家詳細(xì)介紹了Kotlin中Flow數(shù)據(jù)流的幾種使用場景,文中的示例代碼講解詳細(xì),具有一定的借鑒價值,需要的可以參考一下2023-04-04