颤振如何检查产品是否已添加到购物篮

时间:2020-11-03 13:57:03

标签: flutter controller

我正在尝试检查产品是否已添加到购物篮中,并在信息栏上显示消息“此产品已添加”。因此,用户不能将同一产品再次添加到购物车。

这是我的代码:

//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);
  }

0 个答案:

没有答案