flutter 在initState,didUpdateWidget,dispose和其他构建方法中调用超类方法的正确顺序是什么?为什么?

wko9yo5t  于 2023-03-19  发布在  Flutter
关注(0)|答案(1)|浏览(143)

在Android开发世界中,Fragment/Activity生命周期超类方法调用有一个固定的顺序,我指的是answer
现在,关于Flutter,如果我在IDE(Visual Code和Android Studio)中键入空的StatefulWidget didUpdateWidget或任何其他回调,那么我会接受提示,最终得到这样一个顺序,即实现位置在调用之前 *。

@override
  void didUpdateWidget(covariant AnimatedIconsCircle oldWidget) {
    // TODO: implement didUpdateWidget
    super.didUpdateWidget(oldWidget);
  }

超类方法调用顺序命题与Flutter代码库相反:

/// Implementations of this method should start with a call to the inherited
  /// method, as in `super.didUpdateWidget(oldWidget)`.
  @mustCallSuper
  @protected
  void didUpdateWidget(covariant T oldWidget) { }

正确的方法是什么?这有什么关系吗?”

ymzxtsji

ymzxtsji1#

我意识到文档中的一些构建方法是显而易见的:

此方法的实现应该从调用继承的方法开始,如super.initState()。

没有信息。我用InheritedWidget测试过,顺序不重要。

此方法的实现应该从调用继承的方法开始,如super.didUpdateWidget(oldWidget)。

此方法的实现应该以调用继承的方法结束,如super.dispose()。

相关问题