购物车加入问题?
发布于 7 年前 作者 gang40 1861 次浏览 来自 问答

参考https://cloud.tencent.com/edu/learning/learn-1482-8557 里面的教程,购物车加1的问题。

谢谢解答!

const app = getApp()
const db = wx.cloud.database()
Page({
  data: {
    list:[],
    tops:[]
  },
  addCart(e) {
    const {item} = e.currentTarget.dataSet
    const i = app.globalData.carts.findIndex(v => v._id == item._id)
    if (i>-1) {
      //数量加1
      app.globalData.carts[i].num += 1
    } else {
      item.num = 1
      app.globalData.carts.push(item)
    }
  },
2 回复
//index.js
const app = getApp()
const db = wx.cloud.database()
Page({
  data: {
    list:[],
    tops:[],
  },
  addCart(e) {
    //购物车功能  
    //事件传递数据的一种方法
    const {item} = e.currentTarget.dataset
    //把商品的所有信息全部放到购物车里面,同时还要增加一个数量的显示
    //先查询数据库中有没有这个数据,如果有继续加1,如果没有单独赋值为1
    const i = app.globalData.carts.findIndex(v => v._id == item._id)
    if (i > -1) {
      //数量加1
      app.globalData.carts[i].num += 1
    } else {
      item.num = 1
      app.globalData.carts.push(item)
    }
    
  },
  onPullDownRefresh(){
    this.page = 0
    this.getList(true)
  },
  onReachBottom(){
    this.page +=1
    this.getList()
  },
  redirectToDetail(event,x){
    wx.navigateTo({
      url: '/pages/detail/detail?id='+event.currentTarget.id,
    })
    console.log(event.currentTarget.id)
  },
  
  toDetail(e){
    const id = e.currentTarget.id
    wx.navigateTo({
      url: '/pages/detail/detail?id='+id,
    })
    //console.log(id)
    },
    getList(isInit){
      const PAGE= 5
      wx.showLoading({
        title: '加载中',
      })
      db.collection('emall').skip(this.page * PAGE).limit(PAGE).get({
        success: res =>{
          console.log('xx',res.data)

          if (isInit){
            this.setData({
              list: res.data
            })
          } else {
            this.setData({
              list:this.data.list.concat(res.data)
            })
            wx.stopPullDownRefresh()
          }
          wx.hideLoading()
        }
      })
    },

  getTop(){//首页效果轮播图
    db.collection('emall').orderBy('count','desc').limit(4).get({
      success:res=>{
        console.log(res.data)
        this.setData({
          tops:res.data
        })
      }
    })
    //取emall中的内容count的值,进行降序显示,只显示4条记录。
  },

  
  onLoad() {
    this.page = 0
    this.getList(true)
    this.getTop()
  }
})
回到顶部