javascript - 类型错误 : undefined Javascript Vue V-for

标签 javascript vue.js vuejs2

我有一个返回对象数组的函数,如下所示:

getMonthDaysGrid() {
    const totalLastMonthDays = this.getFirstDayOfMonth().dayNumber;
    const totalDays = this.month.numberOfDays + totalLastMonthDays;
    const monthList = Array.from({ length: totalDays });

    for (let i = totalLastMonthDays; i < totalDays; i++) {
      monthList[i] = {
        date: i - totalLastMonthDays + 1,
        month: this.month.name,
        year: this.month.year,
      };
    }

    return monthList;
  }

当我尝试制作这样的 v-for div 时:

<div v-for="(day, idx) in cal.getMonthDaysGrid()" :key="idx">
        <p>
          {{ day.date }}
        </p>
      </div>

这给我带来了这个错误:

enter image description here

我不知道如何修复它...如果它循环数组,我怎么无法访问对象属性?

最佳答案

看起来 Vue 正在尝试在属性出现之前访问该属性,因此您必须先检查它是否存在,或者只是为 day 数组提供默认值

尝试将代码更改为

<div v-for="(day, idx) in cal.getMonthDaysGrid()" :key="idx">
        <p>
          {{ day && day.date }}
        </p>
      </div>

或到

<div v-for="(day, idx) in cal.getMonthDaysGrid()" :key="idx">
        <p>
          {{ day?.date }}
        </p>
      </div>

关于javascript - 类型错误 : undefined Javascript Vue V-for,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72765298/

相关文章:

vue.js - Vue 2 - vuex mapGetters 和传递参数

javascript - 页面加载几秒钟后打开 Bootstrap Accordion 时,ui-grid 为空白?

javascript - 如何防止javascript在移动设备上添加类

javascript - map 函数将结果保存到对象

javascript - VueJS : Getting Unique ID and Value of an array of input at the same time

vue.js - Vue 组合 API 中的只读目标

javascript - AngularJS 自定义指令 ng-show/ng-hide

javascript - 使用 jQuery 的 Reddit 样式选民

javascript - Vue.js Prop 、组件和数据命名空间

vue.js - Vue 最佳实践, Prop 对象或原始类型?