Flutter 在flatter中,为什么BuildOwner.buildScope按深度顺序遍历脏列表?

Flutter 在flatter中,为什么BuildOwner.buildScope按深度顺序遍历脏列表?,flutter,Flutter,在flatter中,方法setState将调用BuildOwner.buildScope。关于此方法buildScope,官方文档称: 此机制可防止生成方法以传递方式要求 要运行的其他构建方法,可能会导致无限循环。这个 脏列表在回调返回后处理,生成所有 使用[scheduleBuildFor]深度标记为脏的元素 秩序。如果此方法运行时元素被标记为脏元素, 它们必须比上下文节点深,并且比任何节点都深 在此过程中以前构建的节点 我有两个问题 这个机制是如何运作的 为什么它按深度顺序遍历脏列表 有人知

在flatter中,方法
setState
将调用
BuildOwner.buildScope
。关于此方法
buildScope
,官方文档称:

此机制可防止生成方法以传递方式要求 要运行的其他构建方法,可能会导致无限循环。这个 脏列表在
回调
返回后处理,生成所有 使用[scheduleBuildFor]深度标记为脏的元素 秩序。如果此方法运行时元素被标记为脏元素, 它们必须比
上下文
节点深,并且比任何节点都深 在此过程中以前构建的节点

我有两个问题

  • 这个机制是如何运作的
  • 为什么它按深度顺序遍历脏列表
  • 有人知道吗?谢谢