在flutter的StatefulWidget中,我们有如下架构。
你有一个这样的StatefulWidget,
class MyOwnClass extends StatefulWidget {
State createState () => _MyOwnClassState();
}
你的StatefulWidget 有一个State 类,就像这样,
class _MyOwnClassState extends State<MyOwnClass> {
}
现在,State 类用于容纳倾向于更改的变量,以便重建您的 UI。
因此,您可以在 State 中包含可以使用 setState 更新的变量。
但是,如果您有一些不会更改的数据,并且您希望避免将它们放入 State 类中。
这就是你的StatefulWidget 发挥作用的地方。
您可以将变量存储在您的MyOwnClass 中,而State 类中的widget 变量为您提供了一种访问它们的方法。
例如,
class MyOwnClass extends StatefulWidget {
int numberThatDoesntChange = 1;
State createState () => _MyOwnClassState();
}
您可以像这样在 State 类中访问它们,
class _MyOwnClassState extends State<MyOwnClass> {
Widget build(BuildContext context) {
return Text('$widget.numberThatDoesntChange');
}
}
除此之外,您的StatefulWidget 还有更多内部实例成员,您可以使用widget 变量在State 类内部访问这些成员。