参考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)
}
},
//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() } })
VM1908:1 thirdScriptError
Cannot read property 'findIndex' of undefined; [Component] Event Handler Error @ pages/index/index#bound addCart
TypeError: Cannot read property 'findIndex' of undefined
谢谢!
<view class="cart" data-item="{{item}}" catchtap="addCart"><text>+</text></view>
// 此处请填入环境 ID, 环境 ID 可打开云控制台查看
// 如不填则使用默认环境(第一个创建的环境)
env: 'panda-e31gg',
traceUser: true,
})
}
this.globalData = {
carts:[],
userInfo:null
}
},
<view class="cart" data-item='{{item}}' catchtap="addCart">
<text>+</text>
</view>