【问题标题】:TypeError: Cannot read properties of undefined for vue bind object property on class bindingTypeError:无法读取类绑定上的 vue 绑定对象属性的未定义属性
【发布时间】:2021-10-02 02:46:34
【问题描述】:

我正在尝试基于对象属性绑定一个类,但是当我单击列表对象以触发 @click 时,控制台告诉我它无法读取 isSelected 的对象属性...我正在尝试每当列表项的属性发生变化时触发一个类来激活,使用函数获取项目的 id 并将此道具设置为 false 或 true

希望有人可以让我知道我在下面的代码中缺少什么,谢谢 :)

<ul class="daysList">
  <li v-for="day in January" v-bind:class="{addedToTrip: day.isSelected}" class="daynum" @click="toggleIsSelected(day)" :key="day.id">
      {{day.val}}
  </li>
  </ul>

我的 vue 数据

data:function(){
    return{
      year: 2021,
      month: 1,
      day: 1,
      days:[18,19,20,21],
      January:[
          {name: 'January', isSelected: false, id: 1, val:1},
          {name: 'January', isSelected: false, id: 2, val:2},
          {name: 'January', isSelected: false, id: 3, val:3},
          {name: 'January', isSelected: false, id: 4, val:4},
          {name: 'January', isSelected: false, id: 5, val:5},
          {name: 'January', isSelected: false, id: 6, val:6},
          {name: 'January', isSelected: false, id: 7, val:7},
          {name: 'January', isSelected: false, id: 8, val:8},
          {name: 'January', isSelected: false, id: 9, val:9},
          {name: 'January', isSelected: false, id: 10, val:10},
          {name: 'January', isSelected: false, id: 11, val:11},
          {name: 'January', isSelected: false, id: 12, val:12},
          {name: 'January', isSelected: false, id: 13, val:13},
          {name: 'January', isSelected: false, id: 14, val:14},
          {name: 'January', isSelected: false, id: 15, val:15},
          {name: 'January', isSelected: false, id: 16, val:16},
          {name: 'January', isSelected: false, id: 17, val:17},
          {name: 'January', isSelected: false, id: 18, val:18},
          {name: 'January', isSelected: false, id: 19, val:19},
          {name: 'January', isSelected: false, id: 20, val:20},
          {name: 'January', isSelected: false, id: 21, val:21},
          {name: 'January', isSelected: false, id: 22, val:22},
          {name: 'January', isSelected: false, id: 23, val:23},
          {name: 'January', isSelected: false, id: 24, val:24},
          {name: 'January', isSelected: false, id: 25, val:25},
          {name: 'January', isSelected: false, id: 26, val:26},
          {name: 'January', isSelected: false, id: 27, val:27},
          {name: 'January', isSelected: false, id: 28, val:28},
          {name: 'January', isSelected: false, id: 29, val:29},
          {name: 'January', isSelected: false, id: 30, val:30},
          {name: 'January', isSelected: false, id: 31, val:31},

      ],
      February:[],
      March:[],
      April:[],
      May:[],
      June:[],
      July:[],
      August:[],
      September:[],
      October:[],
      November:[],
      December:[],
     

    }
  },

当 isSelected == true 时应用的我的 css 类

.addedToTrip{
    background-color: #2E9CFE;
    border-top: .5px solid black;
    border-bottom: .5px solid black;  
}

【问题讨论】:

    标签: css list vue.js


    【解决方案1】:

    指定类名时需要使用单引号

    ul class="daysList">
      <li v-for="day in January" v-bind:class="{'addedToTrip': day.isSelected}" class="daynum" @click="toggleIsSelected(day)" :key="day.id"> // change added
          {{day.val}}
      </li>
      </ul>
    

    【讨论】:

      猜你喜欢
      • 2022-06-16
      • 2021-11-07
      • 2020-06-09
      • 1970-01-01
      • 2021-10-08
      • 2020-02-15
      • 1970-01-01
      • 1970-01-01
      • 2019-09-24
      相关资源
      最近更新 更多