在Flutter中,是否存在诸如 onStateChanged 之类的方法,该方法在页面状态更改时被调用?
setState(() {
widget._loadCompleted = true;
widget._loading = false;
});
我正在尝试在setState()
方法中设置两个布尔值。我出于其他几个原因设置状态。因此,我想知道上一次状态更改是否是出于此特定原因。
答案 0 :(得分:2)
正如Günter所言,没有像onStateChanged()
这样的东西。您必须使用build()
方法处理它。
如果我说对了,您可以这样使用:
class _MyAppState extends State<MyApp> {
bool myFlag = false; // initially set to false
void _doYourWork() {
setState(() => myFlag = true); // set to true here
}
@override
Widget build(BuildContext context) {
if (myFlag) {
// setState() just got called
} else {
// we are building fresh for the first time.
}
myFlag = false;
return yourWidget();
}
}
此后,build()
将收到myFlag
的{{1}}值,然后可以再次将其设置为true
。因此,您可以执行此操作。