[英]Flutter StatefulWidget
看看 StatefulWidget 的用法,我想知道這樣的循環依賴的設計決策:
class YellowBird extends StatefulWidget {
const YellowBird({ Key key }) : super(key: key);
@override
_YellowBirdState createState() => _YellowBirdState();
}
class _YellowBirdState extends State<YellowBird> {
@override
Widget build(BuildContext context) {
return Container(color: const Color(0xFFFFE306));
}
}
有什么想法嗎?
這是構建有狀態小部件的(一種)正確方法,並且與 flutter 文檔完全一致。
這不是循環依賴。 您正在定義一個 Stateful Widget 類和一個相應的 State 類。 Widget 包含一個 State 對象(或者更確切地說是它的一個子類),使用的是基於組合繼承的原則。
來自有狀態小部件文檔:
StatefulWidget 實例本身是不可變的,並且將它們的可變狀態存儲在由 createState 方法創建的單獨 State 對象中,或者存儲在 State 訂閱的對象中,例如 Stream 或 ChangeNotifier 對象,這些對象的引用存儲在 StatefulWidget 的最終字段中本身。
這樣 Flutter 框架就可以更好的管理這個 Widget 的數據的操作和變化。 例如(來自上面的鏈接):
[...] 多個 State 對象可能與同一個 StatefulWidget 相關聯,如果該小部件已在多個位置插入到樹中。
這種組合stful
於繼承的原則是 Flutter 框架的核心概念,大多數 IDE 可以自動為您創建此樣板代碼(例如,在 AndroidStudio 上輸入stful
建議 StatefulWidgets 類及其與 State 相關的類),因此您不必擔心它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.