我有一个带状态的窗口小部件,该窗口小部件会随着按钮按下事件而更新,是否可以从按钮按下事件的相同状态内部调用该状态?各州有很多。所以我想避免初始化太多状态。
答案 0 :(得分:0)
是的,您可以在StatefulWidget中调用setState((){})
。根据文档:
通知框架该对象的内部状态已更改。
这意味着,如果您想更新StatefulWidget
上的任何值,请确保在setState((){})
内部调用它,就像这样:setState(() { _myState = newValue; });
据我了解,您不希望对setState((){})
函数进行太多调用。由于您使用的是按钮,因此可以这样操作:
FlatButton(
child: Text("Tap me!"),
onPressed: () => setState((){ tapped = true}),
),
箭头是代替大括号的合成糖。只有一行代码时很有用。