问题描述
我正在尝试实现一项功能,其中用户点击加号将使用我制作的post API增加产品的数量。问题是它没有动态显示数量。每当我再次加载该视图时,它都会显示正确的数字,但是只要我点击它,它便不会更改 下面是代码
在这里,我正在获取包括数量在内的产品数据。仅此API包含数量,因此我从中获取数据并存储在数组中。
func getCartDetails() {
ApiCaller().getData(url: get_cart_url,resultType: CartResult.self) { (results) in
self.cartPriceDetails = results.result!
guard let resultArray = results.result?.cartItems as? [CartItem] else {return }
for cart in resultArray {
self.cartItems.append(cart)
}
dispatchQueue.main.async {
self.updatetotalLabels(isEmpty: false)
self.updateCheckoutStatus()
self.tableView.reloadDataSavingSelections()
}
}
}
这是我的addProduct方法,该方法将更新为后端,并且不响应数量
func addItem(prodId:String,qty:Int,cartId:String) {
let request = cartProducts(products: [addCartProducts(prodId:prodId,q: qty + 1)])
do {
let encodedResult = try JSONEncoder().encode(request)
ApiCaller().postData(url: update_cart_url+cartId+"/update",requestBody: encodedResult,requestMethod: "PUT",resultType: UpdateCartResults.self) { (results) in
print(results.statusCode)
dispatchQueue.main.async {
self.tableView.reloadData()
}
}
} catch {
print(error)
return
}
}
这在cellForRowAt中,用于调用callBack进行递增
cell.callBackForAddingItem = { () in
self.addItem(prodId: self.cartItems[indexPath.row].id,qty: self.cartItems[indexPath.row].qty,cartId: self.cartPriceDetails!.id)
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)