Neo*_*Neo 4 dart flutter statefulwidget
我刚刚开始摆弄 Flutter,我无法理解StatefulWidget. 我在教程等中看到的所有这些小部件都可以实例化 aState<MyWidget>并让它完成所有工作。
例如,从这个(官方)教程:
class RandomWords extends StatefulWidget {
@override
createState() => new RandomWordsState();
}
class RandomWordsState extends State<RandomWords> {
...
}
Run Code Online (Sandbox Code Playgroud)
我想知道的是为什么要这样构建以及外部类的用途是什么(在我的示例中RandomWords)。
提前致谢。
所述“外部类”是final,每小部件是final(不可变)。这意味着它的所有属性也必须是final:
class RandomWords extends StatefulWidget {
final String name;
@override
createState() => new RandomWordsState();
}
class RandomWordsState extends State<RandomWords> {
String name;
@override
void initState() {
name = widget.name;
super.initState();
}
@override
Widget build(BuildContext context) => Text(name);
void someMethod() {
print(widget.name);
setState(() => name = 'new name');
}
}
Run Code Online (Sandbox Code Playgroud)
从可以访问的State所有字段中StatefulWidget,显然不会更改,因为它们是final.
State但是,可以更改数据。setState将执行其回调,然后重建了State(用新的数据)。
StatelessWidget也可以重建,即当它的父级正在重建时,但所有状态都丢失并且没有数据保留。这就是State's 的用途。
| 归档时间: |
|
| 查看次数: |
1659 次 |
| 最近记录: |