我有一个案例,用户想要将产品添加到购物车,在此之前我想检查 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;
}
}
}
当 I print()
值 i
没有指定在 List
上的位置,而是停留在位置 0
。
如何让它发挥作用?
任何答案将不胜感激。
最佳答案
您应该检查产品是否存在于 firstWhere 子句中。 像这样:
var product = _checkoutList.firstWhere((product) => product.productName == getSelectedProduct.name, orElse: () => null);
if (product == null) addProductToCheckout(uid);
else updateProductCheckout(uid);
关于list - dart - 如果包含在列表中,如何检查 id/name?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54529864/