gpt4 book ai didi

flutter - 如何知道是什么触发了我的 Flutter 小部件重建

转载 作者:行者123 更新时间:2023-12-04 13:40:34 25 4
gpt4 key购买 nike

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

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

breakpoint on a view widget rebuilding multiple times

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

最佳答案

有一个名为 debug_tools 的新包在 https://pub.dev/packages/debug_tools .该软件包包括一个 BuildTracker这允许找出导致重建的原因。
示例运行:
构建的小部件

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

  • 标记为脏的小部件(构建根)
    ValueListenableBuilder ← [root]:
      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
    ...

    关于flutter - 如何知道是什么触发了我的 Flutter 小部件重建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57816216/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com