Flutter中的OnStateChanged方法

时间:2018-11-15 07:16:52

标签: flutter state

在Flutter中,是否存在诸如 onStateChanged 之类的方法,该方法在页面状态更改时被调用?

setState(() {
  widget._loadCompleted = true;
  widget._loading = false;
});

我正在尝试在setState()方法中设置两个布尔值。我出于其他几个原因设置状态。因此,我想知道上一次状态更改是否是出于此特定原因。

1 个答案:

答案 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。因此,您可以执行此操作。