flutter中的initState和super.initState是什么?

Raj*_*haw 5 flutter

在文档中是书面的,但我听不懂。

当此对象插入树中时调用。

框架将为它创建的每个State对象仅一次调用此方法。

重写此方法以执行初始化,具体取决于将此对象插入树中的位置(即上下文)或用于配置此对象的小部件(即小部件)。

如果State的构建方法依赖于本身可以更改状态的对象(例如ChangeNotifier或Stream)或可以订阅以接收通知的其他对象,则State应该在initState期间订阅该对象,并从旧的状态中取消订阅对象,并在didUpdateWidget中更改时订阅新对象,然后在处置中取消订阅该对象。

您不能通过此方法使用BuildContext.inheritFromWidgetOfExactType。但是,didChangeDependencies将在此方法之后立即调用,并且可以在此处使用BuildContext.inheritFromWidgetOfExactType。

如果重写此方法,请确保您的方法始于对super.initState()的调用。

但是我不确定它的含义。你能解释一下吗?

Shu*_*oni 15

initState() 的使用

initState()是一个类的State方法,在 Flutter 中被认为是一个重要的生命周期方法。initState()仅调用一次,我们将其用于一次初始化。

例子 :

  • 要初始化的数据取决于特定的BuildContext.

  • 初始化之前需要执行的数据build()

  • 订阅Streams.


Cop*_*oad 5

感谢@Remi initState()是一种方法,当有状态窗口小部件插入到窗口小部件树中时,该方法就会被调用一次。

如果需要进行某种初始化工作(例如注册侦听器),则通常会覆盖此方法,因为与build()调用此方法不同,该方法被调用一次。

要注销您的侦听器(或进行一些后期工作),请重写dispose()method。