有人可以解释一下<MyApp>吗?
MyAppState是State类的扩展,但是MyApp是什么?
我知道php中的OOP,但无法理解这一点。
class MyApp extends StatefulWidget{
@override
MyAppState createState() => new MyAppState();
}
class MyAppState extends State<MyApp>{
@override
Widget build(BuildContext context) {
return new Scaffold(...);
}
}
Run Code Online (Sandbox Code Playgroud)
永远记住,State<T>类是作为泛型类实现的
当你扩展任何泛型类时,你必须为它指定类型,它恰好是你的 statful 小部件的具体实现,它的名字是 MyApp
对于类的每个具体实现,StatfulWidget您需要定义一个扩展类的另一个具体实现,State<MyApp>它的名称是MyAppState 因为State<T>我们将其编码为泛型类State<MyApp>
所以回答你的问题
MyApp是StatefulWidget类的具体实现名称
StatefulWidget -----> 类不是通用的
MyApp -------------> StatefulWidget 类的具体实现
状态------------> 泛型类
MyAppState --> State 的具体实现
希望有帮助..
State<MyApp>是一个专门针对该类State的类。这允许它具有可继承的方法和属性,这些方法和属性可以在小部件上操作或涉及小部件。MyAppMyApp
例如,它允许MyAppState.widget将相应的小部件专门返回为MyApp小部件而不是通用的StatefulWidget。MyApp如果您想在返回的小部件上调用特定的属性或方法,这一点很重要。
请注意,这是必要的,因为 Flutter 使用类型安全的 Dart并尝试尽可能多地进行静态类型检查,以最大限度地减少运行时进行类型检查的成本。
| 归档时间: |
|
| 查看次数: |
2721 次 |
| 最近记录: |