给大家分享一个小程序选择所有购物车的逻辑过程。我还是要感谢我姐教会我,一个开发者做东西一定要严谨。UI设计再丑,也要做好必要的逻辑。
我们首先要做的是,当用户点击第三个产品时,全选按钮会被自动选中,或者全选后,只要有一个产品没有被选中,全选按钮就要被更改。让我先给你看看代码:
你必须定义一些你需要在每次页面加载时呈现的数据。
数据:{likeList: [],carts:[],//购物车列表hasList:false,//列表中是否有数据//totalPrice:0,//总价,初始0selectAllStatus:false,//全选,默认全选,goodnums: 0,Click: []}每个商品选择列表的单个选中项的逻辑处理(e){ const index = e . current target . dataset . index;//获取每次点击的购物车ID let carts = this . data . carts,selected = carts [index]。select,all = this . data . all click;手推车[索引]。select =!被选中;手推车[索引]。select == true?all . push(index):all . splice(index,1);all.length == carts.length?this . setdata({ selectall status:true }):this . setdata({ selectall status:false });this . gettotalprice();},上面的代码,首先要做的就是单选页面渲染效果。判断部分代码是处理全选逻辑最重要的一步。我相信你在这里注意到了,我在数据中定义了一个allclick的空数组,然后是下面的逻辑:
选中按钮后,取出相应物品的角标,放入新的arr中。这里因为我之前的结算逻辑已经做好了,我只是把数据推入数组,但实际上可以作为相应商品的一些更重要的数据处理。
不勾选按钮就是在新的arr中找到该项对应的下标数据并删除。
以上两步完成后,每次按钮状态变化时,判断arr的长度和cart的长度。
这是我的待遇,也可以回收。实现方式有很多种,就拿出来给没接触过的朋友做个参考吧~
数据:{likeList: [],carts:[],//购物车列表hasList:false,//列表中是否有数据//totalPrice:0,//总价,初始0selectAllStatus:false,//全选,默认全选,goodnums: 0,Click: []}每个商品选择列表的单个选中项的逻辑处理(e){ const index = e . current target . dataset . index;//获取每次点击的购物车ID let carts = this . data . carts,selected = carts [index]。select,all = this . data . all click;手推车[索引]。select =!被选中;手推车[索引]。select == true?all . push(index):all . splice(index,1);all.length == carts.length?this . setdata({ selectall status:true }):this . setdata({ selectall status:false });this . gettotalprice();},这段代码也首先处理所有选择的状态,然后处理关联的状态,
当未勾选全选时,将产品信息中的所有按钮更改为false,直接清空allclick数组。
选中全选时,将产品信息中的所有按钮更改为真,先清除,再按一次,再分配。
经过这些步骤,所有的全选逻辑都解决了。
相信你看完这个案例已经掌握了方法。更多精彩请关注即时码站其他相关文章!
推荐阅读:
如何使用微信小程序开发switchTab
微信小程序开发如何写代码
评论前必须登录!
注册