为什么flutter 是用两个独立的immutable StatefulWidget和mutable State关联的呢?但是是否有可能创建一个可变 StatefulWidget类并在其中管理状态?我认为实现这两个类以创建 StatefulWidget.
向我解释这两个类的实际用法。
不,这是不可能的。StatefulWidgets 被分成 2 个类,因为其中一部分是完全不可变的。Widget子类不能存储任何可变字段。
我们不是在 React 中,“组件”是可变的,并且实例在组件的整个生命周期中都保持不变。
在 Flutter 中,小部件的生命周期很短。每次我们想要修改一些东西时,我们都会创建一个新的小部件实例。
然而,反转 State 和 StatefulWidget 之间的生命周期很容易。并将“拆分为两个类”隐藏在抽象接口下
class Foo extends SimpleStateWidget<int> {
@override
int initState(BuildContext context, SetState<int> setState) {
return 42;
}
@override
Widget build(BuildContext context, SetState<int> setState, int state) {
return RaisedButton(
onPressed: () => setState(state + 1),
child: Text(state.toString()),
);
}
}
Run Code Online (Sandbox Code Playgroud)
如果那是你的事,界面如下:
class Foo extends SimpleStateWidget<int> {
@override
int initState(BuildContext context, SetState<int> setState) {
return 42;
}
@override
Widget build(BuildContext context, SetState<int> setState, int state) {
return RaisedButton(
onPressed: () => setState(state + 1),
child: Text(state.toString()),
);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2089 次 |
| 最近记录: |