buttonClick(e){ // 当前商品的id号 var goodsindex=e.currentTarget.dataset.index this.setData({ currentGoodsIndex:goodsindex }) console.log(this.data.currentGoodsIndex); // 商品信息数组 let currentGoodsList = this.data.currentGoodsList; // 筛选出当前选择的那个商品,并将其作为单个对象存储到 currentGoodsList 中 currentGoodsList.push(this.data.goodsList[this.properties.LeftIndex].find(x => x.id === goodsindex)); // 将currentGoodsList数组赋值给data中的currentGoodsList this.setData({ currentGoodsList: currentGoodsList }); console.log(this.data.currentGoodsList); //组织一个商品的信息对象 var goods={ goods_id:currentGoodsList[this.data.currentGoodsIndex].cmtcount, // 商品id goods_name:currentGoodsList[this.data.currentGoodsIndex].title, // 商品名称 goods_price:currentGoodsList[this.data.currentGoodsIndex].price, // 商品的价格 goods_count:1, // 商品的数量 goods_img:currentGoodsList[this.data.currentGoodsIndex].img, // 商品的图片 goods_state:true // 商品的勾选状态 } console.log(goods); // 将组织好的商品信息存储到store中 this.addToCart(goods) },帮我解决上述代码报以下问题WAServiceMainContext.js?t=wechat&s=1685254542606&v=2.32.0:1 TypeError: Cannot read property 'cmtcount' of undefined at di.buttonClick (GoodsInfo.js:103) at Object.o.safeCallback (WASubContext.js?t=wechat&s=1685254542606&v=2.32.0:1) at WASubContext.js?t=wechat&s=1685254542606&v=2.32.0:1 at An (WASubContext.js?t=wechat&s=1685254542606&v=2.32.0:1) at WASubContext.js?t=wechat&s=1685254542606&v=2.32.0:1 at _e (WASubContext.js?t=wechat&s=1685254542606&v=2.32.0:1) at fe (WASubContext.js?t=wechat&s=1685254542606&v=2.32.0:1) at WASubContext.js?t=wechat&s=1685254542606&v=2.32.0:1 at WAServiceMainContext.js?t=wechat&s=1685254542606&v=2.32.0:1 at o.emit (WAServiceMainContext.js?t=wechat&s=1685254542606&v=2.32.0:1)(env: Windows,mp,1.06.2303220; lib: 2.32.0)
时间: 2024-02-15 10:01:41 浏览: 97
获取当前点击按钮的id用this.id实现
根据报错信息,可能是因为 `currentGoodsIndex` 的值为 undefined,导致无法读取 `currentGoodsList` 中对应索引的商品信息。你可以尝试在调用 `addToCart` 函数之前,先打印出 `currentGoodsIndex` 的值,以及 `currentGoodsList` 数组中的元素,看看它们的值是否正确。如果发现 `currentGoodsIndex` 的值为 undefined,可能是因为在前面的代码中没有正确设置它的值。
另外,根据你提供的代码,`currentGoodsList` 数组中存储的是从 `goodsList` 中筛选出来的商品对象,因此在组织 `goods` 对象时,应该直接使用 `currentGoodsList` 数组中对应索引的商品对象,而不是再从 `currentGoodsList` 数组中查找一遍。因此,可以将以下代码替换到原代码中的 `var goods = {...}` 部分,解决报错问题:
```
// 组织一个商品的信息对象
var goods={
goods_id: currentGoodsList[this.data.currentGoodsIndex].id, // 商品id
goods_name: currentGoodsList[this.data.currentGoodsIndex].title, // 商品名称
goods_price: currentGoodsList[this.data.currentGoodsIndex].price, // 商品的价格
goods_count: 1, // 商品的数量
goods_img: currentGoodsList[this.data.currentGoodsIndex].img, // 商品的图片
goods_state: true // 商品的勾选状态
}
```
这样就可以正确地将 `currentGoodsList` 中的商品信息渲染到 `goods` 对象中了。
阅读全文