一个vue2的问题
在v-for中,点击了按钮,为什么文字颜色没有改变
写法是这样的this.$set( target, key, value )
,第二个是你要修改的key
// 这里改成 :style="{color: list.textColor}"
<div class="text" :style="{color: list.textColor}">
{{ list.text }}
// 赋值处改为
this.$set(this.textList[index], 'textColor', 'blue')
</div>
你这是没有理解this的作用域,以及$set的使用方法,methods中函数this是指向当前组件实例,$set第一个参数是实例data中的变量,第二个参数是变量的key,你要修改textColor的值直接使用this.textColor="blue"就可以了
语法:(value, key, index) in Object
其中 value 是对象值;key 为键名,可选填;index 还是索引,也可选填,举个栗子
<ul id="app">
<li v-for="(value, key, index) in persons">{{ index }}——{{ key }}_{{ value }}</li>
</ul>
const vm = new Vue({
el: '#app',
data: {
persons: {
IronMan: 'Tony Stack',
CaptainAmerican: 'Steven Steve Rogers',
Holk: 'Robert Bruce Banner',
}
}
});
【结果】