Flutter?Getx中的put和lazyPut函數(shù)使用案例解析
案發(fā)現(xiàn)場(chǎng)
在main.dart的runApp函數(shù)入口通過(guò)AppControllerBinding中的Get.lazyPut懶加載綁定了一個(gè)全局的controller,在A界面通過(guò)Get.find(),可以拿到這個(gè)controller,我退出A界面(還沒退出APP)controller就回調(diào)了onClose函數(shù),我再次進(jìn)入商品列表界面
提示我:
"AppController" not found. You need to call "Get.put(AppController())" or "Get.lazyPut(()=>AppController())"
這個(gè)時(shí)候我很奇怪,既然是通過(guò)runApp入口綁定的全局的Controller,為什么在A界面第一次使用的時(shí)候可以獲取到,退出來(lái)就銷毀了,在進(jìn)入A界面就直接報(bào)錯(cuò)了呢?
這就要來(lái)細(xì)讀一下Getx中put和lazyPut這兩個(gè)函數(shù)以及他們的參數(shù)。
Get.put
Get.put<AppController>(AppController(),permanent: false);
核心是第二個(gè)參數(shù)permanent,默認(rèn)是false
當(dāng)為false的時(shí)候,當(dāng)在A視圖中put,退出A視圖就會(huì)銷毀,當(dāng)在B視圖在使用的時(shí)候,就會(huì)報(bào)錯(cuò)
"AppController" not found. You need to call "Get.put(AppController())" or "Get.lazyPut(()=>AppController())"
當(dāng)為true的時(shí)候,一旦put之后,就不會(huì)銷毀,其他視圖也可以繼續(xù)使用
Get.lazyPut
Get.lazyPut<AppController>(() => AppController(),fenix: true);
到了lazyPut函數(shù)又不一樣了,因?yàn)閰?shù)變成fenix了,并不是上面的permanent,而fenix的意思也有很大的區(qū)別。我們?nèi)菀字纋azyPut是懶加載的,在那個(gè)視圖需要的時(shí)候,就在哪個(gè)視圖初始化,而fenix這個(gè)參數(shù)就比較重要。
fenix為false的時(shí)候:
第一次進(jìn)入視圖的時(shí)候初始化,退出視圖的時(shí)候,銷毀,再次進(jìn)入該視圖會(huì)報(bào)錯(cuò)
"AppController" not found. You need to call "Get.put(AppController())" or "Get.lazyPut(()=>AppController())"
fenix為true的時(shí)候:
第一次進(jìn)入視圖的時(shí)候初始化,退出視圖的時(shí)候,銷毀,再次進(jìn)入該視圖重新初始化。
這就是案發(fā)現(xiàn)場(chǎng)的原因?。。。。?/p>
以上就是Flutter Getx中的put和lazyPut函數(shù)使用案例解析的詳細(xì)內(nèi)容,更多關(guān)于Flutter Getx函數(shù)put lazyPut的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Android中關(guān)于Binder常見面試問(wèn)題小結(jié)
這篇文章主要介紹了Android中關(guān)于Binder幾個(gè)面試問(wèn)題,binder是一種進(jìn)程間通訊的機(jī)制,進(jìn)程間通訊需要了解用戶空間和內(nèi)核空間,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-06-06
android實(shí)現(xiàn)手機(jī)傳感器調(diào)用
這篇文章主要為大家詳細(xì)介紹了android實(shí)現(xiàn)手機(jī)傳感器調(diào)用,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-04-04
Android Material加載進(jìn)度條制作代碼
這篇文章主要為大家詳細(xì)介紹了AndroidMaterial加載進(jìn)度條的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01
Android實(shí)現(xiàn)滑塊拼圖驗(yàn)證碼功能
這篇文章主要介紹了Android實(shí)現(xiàn)滑塊拼圖驗(yàn)證碼功能,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
Android開發(fā)中Activity屬性設(shè)置小結(jié)
Android應(yīng)用開發(fā)中會(huì)經(jīng)常遇到Activity組件的使用,下面就來(lái)講解下Activity組件。Activity的生命周期、通信方式和IntentFilter等內(nèi)容,并提供了一些日常開發(fā)中經(jīng)常用到的關(guān)于Activity的技巧和方法。通過(guò)本文,你可以進(jìn)一步了接Android中Activity的運(yùn)作方式。2015-05-05
Android實(shí)現(xiàn)完整游戲循環(huán)的方法
這篇文章主要介紹了Android實(shí)現(xiàn)完整游戲循環(huán)的方法,以實(shí)例代碼形式較為詳細(xì)的分析了Android游戲循環(huán)的實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-10-10
Android沉浸式狀態(tài)欄實(shí)現(xiàn)示例
本篇文章主要介紹了Android沉浸式狀態(tài)欄實(shí)現(xiàn)示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02
安卓應(yīng)用開發(fā)通過(guò)java調(diào)用c++ jni的圖文使用方法
這篇文章主要介紹了2013-11-11

