【问题标题】:How to know what triggered my Flutter widget rebuilds如何知道是什么触发了我的 Flutter 小部件重建
【发布时间】:2020-01-08 23:45:09
【问题描述】:

我已经看到很多关于为什么一个小部件不必要地重建的问题,但我正在寻找一种方法来了解触发它们的原因。

所以我在视图小部件上放了一个断点,我得到了一个相当大的堆栈(裁剪 - 它大了 5 倍):

我们应该如何追踪该死的重建起源?

【问题讨论】:

    标签: flutter dart flutter-provider


    【解决方案1】:

    https://pub.dev/packages/debug_tools 有一个名为debug_tools 的新包。该软件包包括一个BuildTracker,它允许找出导致重建的原因。

    示例运行:

    构建的小部件

    • ValueListenableBuilder<String> ← [root]
    • Directionality ← ValueListenableBuilder<String> ← [root]
    • Text ← Directionality ← ValueListenableBuilder<String> ← [root]

    标记为脏的小部件(构建根)

    ValueListenableBuilder ← [根]:

      State.setState                           package:flutter/src/widgets/framework.dart 1287:15
      _ValueListenableBuilderState._valueChanged package:flutter/src/widgets/value_listenable_builder.dart 182:5
      ChangeNotifier.notifyListeners           package:flutter/src/foundation/change_notifier.dart 243:25
      ValueNotifier.value=                     package:flutter/src/foundation/change_notifier.dart 309:5
    * main.<fn>                                test/build_tracker_test.dart 25:10
    ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-26
      • 1970-01-01
      • 2012-02-20
      • 1970-01-01
      • 2020-09-25
      • 2019-07-06
      • 2021-10-22
      相关资源
      最近更新 更多