有条件地停止儿童重建

时间:2019-12-07 13:08:12

标签: flutter dart

在有状态的小部件中,我有一个导航部分,用户可以在其中选择父项,并在子项下方显示。 当我选择父项也可以重建子部件时是正常的,但是当我导航抛出父项而未选择子项时,父项也可以重建(这是正常的),但子部件也正在重建,在这种情况下如何防止子项重建? 谢谢

1 个答案:

答案 0 :(得分:1)

如果父窗口小部件发生更改并且必须重建此窗口小部件(因为需要为其提供不同的数据),则会调用

didUpdateWidget(),但是要使用相同的runtimeType对其进行重建,则此方法为叫。

因此您可以尝试:

@override
void didUpdateWidget(Widget oldWidget) {
  if (oldWidget.importantProperty != widget.importantProperty) {
    //TODO: Do some amazing stuff !!!
  }
}

有关 didUpdateWidget()的更多信息,请参见:https://api.flutter.dev/flutter/widgets/State/didUpdateWidget.html

希望我的回答有帮助!