【发布时间】:2021-09-06 15:40:18
【问题描述】:
我正在开发一个送餐应用程序,用户在该应用程序中单击从 restaurantDetail 屏幕添加项目并将项目添加到购物车。当用户更改特定项目计数时,在购物车屏幕中。我想在 restaurantDetail 屏幕上更新每个项目的相同项目数?
我正在通过来自购物车列表的回调传递整个购物车列表,并在 restaurantDetail 屏幕上获取相同的列表。如何更新其中的项目数?
在回调中,我将返回此函数,并将总和 callbackFromCart 作为参数。
final Function(double, List<CartModel>) callbackFromCart;
在 RestaturantDetailScreen 上,我在以下函数上得到了相同的结果:
onCartBackPress(totalPriceFromCart, List<CartModel> _listFromCartItem) {
print("LIST FROM CART :${_listFromCartItem}");
for (var item in _listFromCartItem) {
for (var mainrestaurantItem in _itemList) {
if (mainrestaurantItem.id == item.restaurantItemId) {
mainrestaurantItem.totalQty = item.totalQty;
updatedItemCount = mainrestaurantItem.totalQty;
print("UPDATED ITEM COUNT : $updatedItemCount");
}
}
}
setState(() {
_totalPrice = totalPriceFromCart;
});
print(_itemList);
if (_listFromCartItem.isEmpty == true) {
getRestaurantDetail();
}
}
【问题讨论】:
-
您应该考虑实现应用状态管理小部件,例如
provider
标签: flutter dart flutter-layout flutter-widget flutter-listview