我正在使用singleWhere来检查该项目是否已经在flutter的列表内,但是我无法在逻辑内访问该项目,这是我的代码:

if ((invoiceAdditionsList.singleWhere((it) => it.realID == invoiceAdditionInstance.realID,
   orElse: () => null)) !=
   null) {
      print('Already exists! $it');
      } else {
      print('not there');
        }


print('Already exists! $it');行中是错误,无法在此处访问。

最佳答案

您可以获取项目,并根据结果进行存储。由于singleWhere()给出了单个现有项,否则抛出错误。做这样的事情,让我知道是否可行

var item = invoiceAdditionsList.singleWhere((it) => it.realID == invoiceAdditionInstance.realID, orElse: () => null);

// and later check that element out
print("Element found $item" ?? "Not there")
如果您只想从列表中获取第一个找到的元素,则可以考虑使用firstWhere(),如果发现重复或找不到元素,则cos singleWhere()会引发错误。相同的代码,只是firstWhere()
var item = invoiceAdditionsList.firstWhere((it) => it.realID == invoiceAdditionInstance.realID, orElse: () => null);

print("Element found: $item" ?? "Not there");
这只是您的伪代码,可以使用singleWhere()更好地理解它
void main() {
  List testIndex = [1,3,4,5,6,78,80];

  var item = testIndex.singleWhere((it) => it == 120, orElse: () => null);
  print(item ?? "No item found"); // No item found
}

关于android - 如何使用singleWhere .. flutter访问列表内的项目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/63230422/

10-10 08:15