样式渲染问题
发布于 5 年前 作者 tanjun 8193 次浏览 来自 问答

Bug

单独改变一个值,其余的样式就不渲染了

—————————————————————————————————————

代码

<!–student/pages/reservation/evaluation/component/label/label.wxml–>

<view class=‘label_box’>

<view wx:for=’{{list}}’ data-item="{{item}}" bindtap=‘click’>

<text class="{{item.statu==true?‘select’:’’}}">{{item.text}}</text>

</view>

</view>

/* student/pages/reservation/evaluation/component/label/label.wxss */

.label_box{width: 100%; padding: 5px 0; overflow: hidden;}

.label_box text{float: left; padding: 0 10px; border: 1px solid #ddd; color: #666; font: 12px/25px ‘微软雅黑’; border-radius: 4px; margin: 5px;}

.label_box text.select{border-color:#f60; color: #fff; background: #f60;}

//快捷标签

 change_label(e) {

   for (var i = 0; i < this.data.label_list.length;i++){

     console.log(this.data.label_list[i].id== e.detail.label.id)

     if (this.data.label_list[i].id== e.detail.label.id){

       this.data.label_list[i].statu = !this.data.label_list[i].statu

       console.log(this.data.label_list)

       this.setData({ label_list: this.data.label_list})

     }

   }

 },

—————————————————————————————————————

—————————————————————————————————————

点击前

—————————————————————————————————————

—————————————————————————————————————

点击后

点击第二个标签以后,数据看起来是对的,同样的样式第二个能渲染第三个却不显示了,是我的代码有问题嘛

10 回复

@赵子龙 一开始是全部样式写的,那样也会把样式顶掉,顶了之后连基本样式都没了,还不如现在这样

还是谢谢你啊

问题还在。自己顶顶

你把后代选择器统一都改为class选择器,组件中的样式统一写成class选择器试试,不行我也没招了

哦哦,刚刚试了下,没有变化。点击的当时appdata的数据就对应改变了,这里的值是对的。切wxml再回来也不会发生变化,应该不是延迟显示

我测了一下,确实有问题,应该是自定义组件引用的bug,回头好好看看

如果初始化默认两个都选中会怎样呢

你试一下直接在组建内部setData这个prop值呢,┑( ̄Д  ̄)┍

默认都选中的话是没问题的,两个都能选中,再点还不行

——————————————————————————

点击后

我的意思是你点下别的内容,比如wxml,然后再点回appdata看是不是变了

写了的,没有截图,看APPdata里的数据是对的

回到顶部