vue 循环 动态绑定class不生效

 <p class="detailNoreItem" @click="selectType(goodsItem.uuid)" :class="goodsItem.select ? 'detailNoreItemActive' : ''" v-for="(goodsItem,idx) in item.item" :key="idx">{{goodsItem.name}}</p>
selectType(index){     
            this.$nextTick(function () {
                this.goodsInfo.standard.map((goods,idx) =>{
                    goods.item.map((item, idxs) => {
                        if (item.uuid == index) {
                            console.log("item",item)
                            item.select = true;
                        } else {
                            item.select = false;
                        }
                    })
                })
            });
},

image.png
image.png
就很纳闷,点击时方法里能打印出东西的,但是页面class没能绑定上去;选择一个颜色,再选择一个数量,class才能出现

阅读 8.9k
2 个回答

动态绑定class有两种语法:

  1. 对象语法
  2. 数组语法

你这里结果是个字符串

你可以这样写:

:class='{"detailNoreItemActive": goodsItem.select}'

或者这样:

:class="[goodsItem.select ? 'detailNoreItemActive' : '']"

这类问题简称,视图没有刷新,你可以使用set也可以使用 $forceupdate

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题