dart - 如果包含在List中,如何检查id / name?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dart - 如果包含在List中,如何检查id / name?相关的知识,希望对你有一定的参考价值。

我有一个案例,当用户想要将产品添加到购物车时,之前我想检查id/name产品是否在购物车中。

如果没有那么我会把它添加到购物车,如果它已经存在我将只编辑(添加数量和价格)

我尝试过使用以下代码:

   Future checkIfProductHasAdded(String uid) async {
      for (var i = 0; i < _checkoutList.length; i++) {
        print(_checkoutList[i].name);

      if (_checkoutList[i].productName == getSelectedProduct.name) {
        selectedProductCheckout(i);

        print(getSelectedProduct.name +
            "PRODUCT CHECKOUT HAS ADDED" +
            _checkoutList[i].productName);

       // await updateProductCheckout(uid);

        break;

      } else {
        print(getSelectedProduct.name + "NOT FOUND AT PRODUCT CHECKOUT");
        //await addProductToCheckout(uid);
        break;
      }
    }
  }

当我print()i没有指定List的位置,但保持位置0。如何使它工作?

任何答案将不胜感激。

答案

您应该检查firstWhere子句中是否存在产品。像这样的东西:

var product = _checkoutList.firstWhere((product) => product.productName == getSelectedProduct.name, orElse: () => null);

if (product == null) addProductToCheckout(uid);
else updateProductCheckout(uid);

以上是关于dart - 如果包含在List中,如何检查id / name?的主要内容,如果未能解决你的问题,请参考以下文章

Dart/Flutter - 如何删除 List 中 Map 元素的键值对?

Dart 映射,如何根据其键 id 替换 list<map> 中的特定键值?

如何在 Dart 中使用 json_annotation 将 Uint8List 序列化为 json?

dart空安全,Map中值如何累加

dart空安全,Map中值如何累加

dart空安全,Map中值如何累加