希望这是一个简单的问题,但我对Flutter完全是个新手。我想知道如何将一个小部件的变量重置为默认值,比如当一个按钮被按下时。我知道我可以硬编码它(就像我在下面的例子中所做的那样),但肯定有一个更聪明的方法可以简单地将它重置为默认值,而不必显式地将它设置为相同的值?
谢谢你的帮助!
class WidgetTest extends StatefulWidget {
static const String id = 'widgettest_screen';
@override
_WidgetTestState createState() => _WidgetTestState();
}
class _WidgetTestState extends State<WidgetTest> {
int _variable = 0;
@override
Widget build(BuildContext context) {
return Container(
child: Column(
children: <Widget>[
Text('$_variable'),
IconButton(
icon: Icon(
Icons.add,
),
onPressed: () {
setState(() {
_variable++;
});
},
),
IconButton(
icon: Icon(
Icons.refresh,
),
onPressed: () {
setState(() {
_variable = 0;
});
},
)
],
),
);
}
}
2条答案
按热度按时间xdnvmnnf1#
当使用新的
Key
重建StatefulWidget
时,将构造新的State
。类似问题的示例实现可以在this answer中找到。
或者,
flutter_phoenix
package也可用于此目的。kcugc4gi2#