首页 > 解决方案 > 在 Flutter 中重置变量

问题描述

希望这很简单,但我是 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;
              });
            },
          )
        ],
      ),
    );
  }
}

标签: flutterdart

解决方案


当 aStatefulWidget用 new 重建时Key,会构建一个 new State

一个示例实现可以在这个对类似问题的回答中找到。

或者,该flutter_phoenix包装可用于此目的。


推荐阅读