Flutter - 带布尔的计数列表

Tim*_*900 5 flutter

在 Flutter 中,我创建了一个带有布尔值的列表。

List<bool> name = [false, false, false]
Run Code Online (Sandbox Code Playgroud)

单击切换按钮后,值将更改为 true。

如何计算重新加载页面时的值?

我的尝试是在 initState 内部对列表进行计数(如果列表包含 true)。

value = name.contains(true).length
Run Code Online (Sandbox Code Playgroud)

但它总是说“bool”类没有定义长度。

如何在页面重新加载时对其进行计数?

提前致谢!

Har*_*dia 12

使用where而不是contains

value = name.where((item) => item == false).length
Run Code Online (Sandbox Code Playgroud)

bool Iterable.contains(Object element) 如果集合包含等于 [element] 的元素,则返回 true。

此操作将检查每个元素是否等于 [element],除非它有更有效的方法来查找等于 [element] 的元素。

用于确定 [element] 是否等于可迭代元素的相等性默认为该元素的 [Object.==]。

某些类型的可迭代对象可能对其元素使用不同的等式。例如,[Set] 可能具有其包含使用的自定义相等性(请参阅[Set.identity])。同样,[Map.keys] 调用返回的 Iterable 应该使用与 Map 用于键相同的等式。

  • 来自 Dart 文档

TLDR:contains返回布尔值,指示列表是否“包含”某个项目。