【发布时间】:2020-04-30 08:00:02
【问题描述】:
这是我存储 CartItems 的代码。
我想将它作为 cartItems 存储在 Shared Preferences 中,因为在刷新时,数据会丢失。 我还想在 CartItem 中有功能来检查产品是否在购物车中,以便我可以选中/取消选中它。
class CartItem {
final String id;
final String prodID;
final String title;
final String img;
final double quantity;
final double price;
final double availQuantity;
CartItem({
@required this.id,
@required this.prodID,
@required this.title,
@required this.quantity,
@required this.price,
@required this.img,
this.availQuantity,
});
}
class Cart with ChangeNotifier {
Map<String, CartItem> _items = {};
Map<String, CartItem> get items {
return {..._items};
}
int get itemCount {
return _items.length;
}
void addItem(String productId, double price, String title, String img,
double availQuantity) {
if (_items.containsKey(productId)) {
_items.update(
productId,
(existingCartItem) => CartItem(
id: existingCartItem.id,
title: existingCartItem.title,
img: existingCartItem.img,
price: existingCartItem.price,
quantity: existingCartItem.quantity + 1,
availQuantity: existingCartItem.availQuantity,
),
);
} else {
_items.putIfAbsent(
productId,
() => CartItem(
id: productId,
title: title,
img: img,
price: price,
quantity: 1,
availQuantity: availQuantity,
),
);
}
notifyListeners();
}
}
我尝试了很多方法来转换为字符串并调用 setString(), 也转换为列表。但无法完成。 需要帮助。
【问题讨论】:
-
购物车应该保留在服务器右侧
-
我推荐你用 sqflite 来做flutter
-
我不想保存到服务器。
标签: flutter sharedpreferences shopping-cart