欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Flutter?Getx中的put和lazyPut函數(shù)使用案例解析

 更新時間:2023年07月27日 10:38:26   作者:大蝦啊啊啊  
這篇文章主要為大家介紹了Flutter?Getx中的put和lazyPut函數(shù)使用案例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

案發(fā)現(xiàn)場

在main.dart的runApp函數(shù)入口通過AppControllerBinding中的Get.lazyPut懶加載綁定了一個全局的controller,在A界面通過Get.find(),可以拿到這個controller,我退出A界面(還沒退出APP)controller就回調了onClose函數(shù),我再次進入商品列表界面

提示我:

"AppController" not found. You need to call "Get.put(AppController())" or "Get.lazyPut(()=>AppController())"

這個時候我很奇怪,既然是通過runApp入口綁定的全局的Controller,為什么在A界面第一次使用的時候可以獲取到,退出來就銷毀了,在進入A界面就直接報錯了呢?

這就要來細讀一下Getx中put和lazyPut這兩個函數(shù)以及他們的參數(shù)。

Get.put

 Get.put<AppController>(AppController(),permanent: false);

核心是第二個參數(shù)permanent,默認是false

當為false的時候,當在A視圖中put,退出A視圖就會銷毀,當在B視圖在使用的時候,就會報錯

"AppController" not found. You need to call "Get.put(AppController())" or "Get.lazyPut(()=>AppController())"

當為true的時候,一旦put之后,就不會銷毀,其他視圖也可以繼續(xù)使用

Get.lazyPut

Get.lazyPut<AppController>(() => AppController(),fenix: true);

到了lazyPut函數(shù)又不一樣了,因為參數(shù)變成fenix了,并不是上面的permanent,而fenix的意思也有很大的區(qū)別。我們容易知道lazyPut是懶加載的,在那個視圖需要的時候,就在哪個視圖初始化,而fenix這個參數(shù)就比較重要。

fenix為false的時候:

第一次進入視圖的時候初始化,退出視圖的時候,銷毀,再次進入該視圖會報錯

"AppController" not found. You need to call "Get.put(AppController())" or "Get.lazyPut(()=>AppController())"

fenix為true的時候:

第一次進入視圖的時候初始化,退出視圖的時候,銷毀,再次進入該視圖重新初始化。
這就是案發(fā)現(xiàn)場的原因?。。。?!

以上就是Flutter Getx中的put和lazyPut函數(shù)使用案例解析的詳細內容,更多關于Flutter Getx函數(shù)put lazyPut的資料請關注腳本之家其它相關文章!

相關文章

最新評論