在实现上图的开发过程中,总结了一套代码整洁的tabs-list的开发方式
分析逻辑:
①tabs可以当做一个json(好处在于通过wx:for可以动态生成,choosestatus可以用来对应下面的数据)
[{ name:"待兑换", chooseStatus:"effectCoupon" },{ name:"已兑换", chooseStatus:"overdueCoupon" },{ name:"已过期", chooseStatus:"usedCoupon" }],
②由于种种原因,接口返回的3个list是分开的。这就是choosestatus的作用,和返回的3个list字段一一对应,通过变量,动态改变选中样式和存储list的数组
get_yhq_list: function (e) { var _this = this; var clickId = e.currentTarget.dataset.index; //把点击的索引传递过来,改变显示隐藏的数组的布尔值来改变样式 var clickStatus = e.currentTarget.dataset.choose; //把点击的参数传递过来 _this.data.is_tab_on = [false,false,false]; _this.data.is_tab_on[clickId] = true; if(_this.data[clickStatus].length > 0){ _this.setData({ is_no_data:false, is_tab_on:_this.data.is_tab_on, CardList:_this.data[clickStatus] }) }else{ _this.setData({ CardList:[], is_tab_on:_this.data.is_tab_on, is_no_data:true, }) } },