Flutter中的Key详解(补充)

2022-03-28 09:05:03 浏览数 (1)

本文是对Flutter中的Key详解的补充,建议读本文前先读完Flutter中的Key详解。

在Widget类的定义当中,有定义这样一个canUpdate函数:

代码语言:javascript复制
  static bool canUpdate(Widget oldWidget, Widget newWidget) {
    return oldWidget.runtimeType == newWidget.runtimeType
        && oldWidget.key == newWidget.key;
  }

这个函数用于判断Element树中某个位置上的Element是否可以被复用,可以看到,只有当新、旧Widget的runtimeType和key都相等的时候,该Element才会被复用如果没有设置key,那么他们的key就都是null,此时就只需要判断新、旧Widget的runtimeType即可

在Flutter中的Key详解中有这样一段描述:

上面

0 人点赞