我有一个案例,当用户想要将产品添加到购物车中时,在此之前,我想检查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
.如何使它工作?
任何答复都将受到欢迎。
2条答案
按热度按时间xkrw2x1b1#
您应该检查firstWhere子句中是否存在产品,如下所示:
ruarlubt2#
此解决方案是最快的:
注意:如果您不需要比较ID/名称,但只想检查特定项目是否在列表中,则可以使用
_checkoutList.contains(item)