您好,我有一个简单的电子商务应用程序。有新商品加入购物车时,我可以添加,但是当不同尺码到货时,我想注册一个新商品,我该如何解决?
我的购物车代码;
void addItem(
String productId,
String title,
double price,
String image,
String size,
) {
if (_items.containsKey(productId)) {
_items.update(
productId,
(prevCartItem) => Cart(
id: prevCartItem.id,
title: prevCartItem.title,
image: prevCartItem.image,
quantity: prevCartItem.quantity + 1,
price: prevCartItem.price,
size: prevCartItem.size,
),
);
} else {
_items.putIfAbsent(
productId,
() => Cart(
id: DateTime.now().toString(),
title: title,
quantity: 1,
image: image,
price: price,
size: size,
),
);
}
notifyListeners();
}
感谢您的帮助。
答案 0 :(得分:1)
我假设该物品是布料或某种类型的物品,用户必须选择尺寸才能添加该物品
让 size 为你的 item 类中的 size 并使其成为地图
你的代码看起来像这样..
VariableDoesNotExist at /control/control
Failed lookup for key [Control] in [{'True': True, 'False': False, 'None': None}, {}, {}, {'paginator': None, 'page_obj': None, 'is_paginated': False, 'object_list': <SoftDeleteQuerySet [<Control: Go-live approval>]>, 'control_list': <SoftDeleteQuerySet [<Control: Go-live approval>]>, 'filter': <django_filters.filterset.ControlFilterSet object at 0x000002B9C2C8FE08>, 'form': <ControlForm bound=False, valid=False, fields=(title;description;activity;type;frequency;owner;reviewer1;reviewer2;priority;reviewer1_r;reviewer2_r;status;process;risk;bu;application;referencenumber)>, 'view': <app.views.ControlView object at 0x000002B9C2BAA948>, 'table': <django_tables2.tables.ControlAutogeneratedTable object at 0x000002B9C2D3D148>, 'controls': <SoftDeleteQuerySet [<Control: Go-live approval>]>}]
答案 1 :(得分:0)
它总是会更新 prevCart 因为“它有相同的 ID”你只需要添加条件来检查 prevCart 是否有相同的项目大小来完成这个 概念: if(_items.containsKey(productId)) => if(_items.containsKey(productId) && prevCartItem.size != size )