vuejs 样式绑定的问题

<div class="row" v-for='(item,index) in lyricList' :class="{active:item[0]==currentTime}"> 绑定的样式不起作用? 自己测试过貌似是currentTime(data里的变量)取不到值 这是为什么? 如果不能解决的话,我想问一下样式绑定能用函数吗?样式绑定表达式能传参吗?类似于 active:addClass(item[0])

阅读 2.1k
3 个回答

看了题主的数据样式,应该是做一个当前歌词样式更改的东西
问题应该出在currentTime上面,可以设置一个初始值999,然后页面上打印该值和item[0]的值进行比对,来检验该值是否改变。

个人猜想:
1.currentTime是否是嵌套在某个对象中,使用是否正确(可以贴出你的data)
2.在methods中改变currentTime的时候,是否正确更改了该值,是否使用如下改变currentTime的值(可以贴出你改变currentTime的方法)

xxx:function(){
    this.currentTime = newValue;
}

原回答:
贴一下lyricList的数据结构吧,
如果item不是数组(不支持索引的类型)的话,你肯定取不到想要的值。

v-bind绑定的可以是一个对象,一个表达式,也可是一个计算属性,这为你的绑定值提供了多样的选择,currentTime的值取不到原因不明,是否data的值有被改变过或者调用的时候有异常,是否有报错之类的

图片描述

这是lyricList的类型, item[0]的值为number类型,currentTime是个随时间在改变的值,无异常也无报错。但是就是取不到currentTime。
PS:我用绑定函数的方式解决了这个样式绑定的问题(:class="isActive(item[0],index)") 但是我想知道为什么取不到currentTime

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