我已经看到很多关于为什么一个小部件不必要地重建的问题,但我正在寻找一种方法来理解是什么触发了它们。
所以我在视图小部件上放了一个断点,我得到了一个相当大的堆栈(裁剪 - 它大 5 倍):
我们应该如何追踪该死的重建起源?
我已经看到很多关于为什么一个小部件不必要地重建的问题,但我正在寻找一种方法来理解是什么触发了它们。
所以我在视图小部件上放了一个断点,我得到了一个相当大的堆栈(裁剪 - 它大 5 倍):
我们应该如何追踪该死的重建起源?
有一个名为https://pub.dev/packages/debug_toolsdebug_tools
的新包。该软件包包括一个允许找出导致重建的原因。BuildTracker
示例运行:
ValueListenableBuilder<String> ← [root]
Directionality ← ValueListenableBuilder<String> ← [root]
Text ← Directionality ← ValueListenableBuilder<String> ← [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
...