我什么时候应该在 Flutter 中重写 debugFillProperties?

nik*_*hil 8 dart flutter

为什么要在 Flutter 的有状态 widget 中使用debugFillProperties ?我见过一些像Slider这样的 flutter 内置状态小部件使用这种方法。

我浏览了这里给出的 Flutter 文档。我仍然无法理解debugFillProperties的实际用法。何时或为何使用它?

我在我的示例代码中尝试过,仍然无法理解。我在 Flutter 中没有找到任何关于此方法的文档或相关信息。

  double? min;
  @override
  void debugFillProperties(DiagnosticPropertiesBuilder properties) {
    super.debugFillProperties(properties);
    print("--------------Debug-------------");
    properties.add(IntProperty('min', min, defaultValue: 5, ifNull: "nulll"));
  }
Run Code Online (Sandbox Code Playgroud)

Rez*_*ari 10

通过重写debugFillProperties函数,我们可以在详细信息树中显示变量(状态)的当前值

示例:不重写此方法:

class _MyHomePageState extends State<MyHomePage> {
  late MyColorScheme _myColorScheme;
  int _counter = 0;

  @override
  void initState() {
    _myColorScheme = MyColorScheme(Colors.black, Colors.white);
    super.initState();
  }
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

重写此方法:

class _MyHomePageState extends State<MyHomePage> {
  late MyColorScheme _myColorScheme;
  int _counter = 0;

  @override
  void initState() {
    _myColorScheme = MyColorScheme(Colors.black, Colors.white);
    super.initState();
  }

  @override
  void debugFillProperties(DiagnosticPropertiesBuilder properties) {
    super.debugFillProperties(properties);
    properties.add(IntProperty('_counter', _counter));
    properties.add(
        DiagnosticsProperty<MyColorScheme>('myColorScheme', _myColorScheme));
  }

}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述