【发布时间】:2021-08-26 00:39:08
【问题描述】:
当我们在使用 const 构造函数创建的两个小部件上调用 identical() 时,它返回 false。而在为两个非小部件对象调用相同时,它返回true。
这是为什么呢?
void main() {
final a = const Center(
child: const Padding(padding: const EdgeInsets.all(8),)
);
final b = const Center(
child: const Padding(padding: const EdgeInsets.all(8),)
);
assert(identical(a, b)); // false
var a1 = const EdgeInsets.all(8);
var b1 = const EdgeInsets.all(8);
assert(identical(a1, b1)); // true
}
[错误:flutter/lib/ui/ui_dart_state.cc(199)] 未处理的异常:'package:todo_improve/main.dart':断言失败:第 17 行 pos 8:'相同(a,b)':是不正确。
【问题讨论】:
-
我无法重现您描述的行为。请创建一个minimal reproducible example。
-
对不起。请你再检查一次。禁用 2 行:var a = const EdgeInsets.all(8); var b = const EdgeInsets.all(8);
-
您的代码没有任何变化。我无法重现。请创建一个minimal reproducible example。
-
这里是错误:imgur.com/a/PdRSbpZ。对不起。
标签: flutter dart widget constants