wx小程序学习Day7 购物车收货地址按钮、动态渲染购物车、全选按钮、计算总价格和总数量、商品的选中与不选中

今天是学习小程序的第7



1. 购物车-收货地址按钮

pages/cart/index.json中设置一下购物车的title
在这里插入图片描述

primary设置颜色为绿色,plain设置背景色透明
在这里插入图片描述
在这里插入图片描述
实现获取用户的收货地址功能:

  • 绑定按钮的点击事件
  • 调用小程序内置的api:wx.chooseAddress()来获取用户的收货地址

在这里插入图片描述
应该是默认的地址?点确定
在这里插入图片描述
就能获取到用户的地址
在这里插入图片描述
我们将获取到的地址存入到本地存储中
这样之后每次打开购物车页面的时候,先判断本地存储中有无地址,有就显示
在这里插入图片描述
获取本地存储中的地址并设置,放在onShow()里,可能会多次打开此购物车页面,希望每次显示此页面都会执行一次
在这里插入图片描述
wx:ifwx:else判断显示按钮还是显示地址
在这里插入图片描述
显示地址的样式随便调一下就行
在这里插入图片描述


2. 购物车-动态渲染

先写个样式,大概长这个样子
在这里插入图片描述
在前面我们把添加进购物车的商品数据保存在了本地,现在我们要获取本地存储中的购物车数据并显示,放在onShow()
注意我们之前存的名字叫cartList
在这里插入图片描述
将数据填入对应的标签
在这里插入图片描述
但是我们购物车商品的选择框,是否选择,是需要一个属性来与之相关联的
可以像之前的num一样,在点击添加商品到购物车的时候就设置一个属性checked
pages/goods_detail/index.js
在这里插入图片描述
checkbox标签上加上这个属性
在这里插入图片描述
在这里插入图片描述


3. 购物车-全选按钮

如果购物车中所有商品都被选中 => 全选被选中
购物车中有任一商品未被选中 => 全选不被选中

⚠️:这里的|| [] 一定要加上,保证其类型不变,不然cartList为空时调用every()会报错
在这里插入图片描述
将全选属性allCheckedcheckboxchecked属性绑定
在这里插入图片描述
但是此时如果购物车为空的话,全选按钮也是选中的,因为当cart为空数组时,every()方法默认返回true,所以我们的代码要改一下
在这里插入图片描述


4. 购物车-总价格和总数量

商品被选中 => 将它拿来计算
总价格 += 商品单价 * 商品数量
总数量 += 商品数量

data中定义totalPricetotalNum
这里把上面遍历数组设置allChecked也一起放进forEach循环里,不用遍历两遍
在这里插入图片描述
在这里插入图片描述


5. 购物车-商品的选中和不选中

  1. 为选中框绑定change事件
  2. 获取改变了选中状态的商品对象
  3. 将该商品对象的状态取反
  4. 重新填回data本地存储
  5. 重新计算总价格总数量

在这里插入图片描述
在这里插入图片描述
计算allCheckedtotalPricetotalNum这部分代码重复使用了,可以封装成一个函数
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值