Flutter 如何检查产品是否已添加到篮子中
我正在尝试检查产品是否已经添加到购物篮中,并使用snackbar显示信息“此产品已添加”。因此,用户不能再次将同一产品添加到购物车 这是我的密码:Flutter 如何检查产品是否已添加到篮子中,flutter,controller,Flutter,Controller,我正在尝试检查产品是否已经添加到购物篮中,并使用snackbar显示信息“此产品已添加”。因此,用户不能再次将同一产品添加到购物车 这是我的密码: //Button calling controller adding item to cart InkWell( onTap:(){ _con.addItemToCart(_con.product); }); //Controller adding item to cart Future addItemToCart(Product
//Button calling controller adding item to cart
InkWell(
onTap:(){
_con.addItemToCart(_con.product);
});
//Controller adding item to cart
Future addItemToCart(Product product, {bool reset = false}) async {
setState(() {
this.loadCart = true;
});
Cart value =
await addToCart(product, scaffoldKey, context, quantity: quantity);
setState(() {
this.cart = value;
this.loadCart = false;
this.totalProductsInStock = this.product.availability;
this.totalProductsInStock -= this.totalProductsInStock - this.quantity ;
});
}
Future<Cart> addToCart(Product product, GlobalKey<ScaffoldState> scaffoldKey, BuildContext buildContext, {bool reset = false, int quantity = 1}) async {
var _cartPoduct = new CartProduct();
_cartPoduct.productId = product.id;
_cartPoduct.optionId = product.optionId;
_cartPoduct.quantity = quantity;
Cart value = await CartRepository.addCart(_cartPoduct, reset);
return value;
}
//Request
static Future<Cart> addCart(CartProduct cartProduct, bool reset) async {
User _user = userRepo.currentUser.value;
if (_user.apiToken == null) {
return new Cart();
}
Map<String, dynamic> decodedJSON = {};
cartProduct.userId = _user.id;
final String url =
'${GlobalConfiguration().getString('api_base_url')}';
final client = new http.Client();
final response = await client
.get(url, headers: {HttpHeaders.contentTypeHeader: 'application/json'});
try {
decodedJSON = json.decode(response.body)['data'] as Map<String, dynamic>;
} on FormatException catch (e) {
}
return Cart.fromJSON(decodedJSON);
}
//按钮调用控制器将项目添加到购物车
墨水池(
onTap:(){
_合同附件(合同产品);
});
//控制器将项目添加到购物车
Future addItemToCart(产品产品,{bool reset=false})异步{
设置状态(){
this.loadCart=true;
});
购物车价值=
等待添加零件(产品、脚手架钥匙、上下文、数量:数量);
设置状态(){
this.cart=价值;
this.loadCart=false;
this.totalProductsInStock=this.product.availability;
this.totalProductsInStock-=this.totalProductsInStock-this.quantity;
});
}
Future addToCart(Product-Product、GlobalKey-scaffoldKey、BuildContext-BuildContext、{bool reset=false、int-quantity=1})异步{
var_cartPoduct=新CartProduct();
_cartPoduct.productId=product.id;
_cartPoduct.optionId=product.optionId;
_cartPoduct.quantity=数量;
购物车值=等待CartRepository.addCart(_cartPoduct,reset);
返回值;
}
//请求
静态未来addCart(CartProduct CartProduct,bool reset)异步{
用户_User=userRepo.currentUser.value;
if(_user.apiToken==null){
返回新购物车();
}
Map decodedJSON={};
cartProduct.userId=\u user.id;
最终字符串url=
“${GlobalConfiguration().getString('api_base_url')}”;
final client=new http.client();
最终响应=等待客户
.get(url,标题:{HttpHeaders.contentTypeHeader:'application/json'});
试一试{
decodedJSON=json.decode(response.body)['data']作为映射;
}关于格式化异常捕获(e){
}
返回Cart.fromJSON(decodedJSON);
}