Bundan tashqari davlatsiz vidjet va statefulWidget , u erda yana bir turi hisoblanadi Flutter-dagi vidjet ramka, InheritedWidget . Ba'zan, bitta vidjet mumkin kerak uchun bor kirish daraxtga ma'lumot berish uchun va bunday holatda biz ma'lumotni qiziqtirgan vidjetgacha takrorlashimiz kerak bo'ladi. Ushbu jarayon quyidagi diagrammada ko'rsatilgan:
Aytaylik, daraxt ostidagi ba'zi vidjetlar sarlavhaga kirishi kerak dan mulk ildiz vidjet. Kimga qil bu, bilan davlatsiz vidjet yoki statefulWidget , biz bo'lardi mulkni mos keladigan vidjetlarda takrorlash va uni konstruktor orqali o'tkazish kerak. Qiymat manfaatdor vidjetga etib borishi uchun barcha bolalar vidjetlarida xususiyatni takrorlash zerikarli bo'lishi mumkin.
Kimga manzil bu muammo, Flutter beradi the Meroslangan vidjet sinf, a yordamchi mehribon Quyidagi diagrammada ko'rsatilganidek, daraxt bo'ylab ma'lumotni tarqatishga yordam beradigan vidjet :
InheritedWidget qo'shish orqali daraxtga, uning ostidagi har qanday vidjet u ko'rsatadigan ma'lumotlarga kirishi mumkin tomonidan foydalanish the inheritFromWidgetOfExactType(InheritedWidget) usuli BuildContext _ InheritedWidget -ni oladigan sinf parametr sifatida yozing va so'ralgan turdagi birinchi ajdod vidjetini topish uchun daraxtdan foydalanadi.
Agar siz olish a qarang da ikkalasi ham konstruktorlar ning davlatsiz vidjet va statefulWidget sinflarda kalit deb nomlangan parametrni ko'rasiz . Bu Flutter-dagi vidjetlar uchun muhim xususiyatdir. Bu vidjetlar daraxtidan elementlar daraxtiga ko'rsatishda yordam beradi. Tegishli vidjet turi va havolasidan tashqari, bu element daraxtdagi vidjetni identifikatsiya qiluvchi kalitga ham ega. Kalit _ mulk qayta qurishlar orasidagi vidjet holatini saqlab qolishga yordam beradi. Kalitning eng keng tarqalgan qo'llanilishi Biz vidjetlar to'plami bilan shug'ullanayotganimizda bor the bir xil turdagi; Shunday qilib, kalitlarsiz, the element daraxti qilmasdi bilish qaysi holat qaysi vidjetga mos keladi, chunki ularning barchasi bir xil turga ega bo'ladi. Masalan, har doim a vidjet o'zgarishlar uning pozitsiya yoki Daraja ichida the vidjetlar daraxt, moslashish hisoblanadi bajarildi ichida yangi vidjet tuzilishini aks ettirish uchun ekranda nimani yangilash kerakligini ko'rish uchun elementlar daraxti. Vidjet holatiga ega bo'lsa, unga ko'chirish uchun tegishli holat kerak bu. In qisqacha, bu hisoblanadi nima a kalit yordam beradi the ramka uchun qil. tomonidan ushlab turish the kalit qiymat, ko'rib chiqilayotgan element u bilan birga bo'lishi kerak bo'lgan tegishli vidjet holatini bilib oladi.
Do'stlaringiz bilan baham: |