循环无穷大在哪里?

时间:2019-01-03 16:49:33

标签: javascript vue.js vuejs2 momentjs

我发现自己遇到了无限循环错误,但看不到它在哪里。那是我添加课程的时间。

模板:

  <tr class="listOfDay">
    <td>Jour de la semaine</td>
    <td v-for="day in nbDaysInMonth" :key="index" :class="{weekend: isWeekend}">{{dayOfWeek(day,index)}}</td>
  </tr>

脚本:

data: () {
   isWeekend: false,
},
methods : {
  dayOfWeek(day) {
    var d = moment(new Date(this.currentYear + '-' + this.nbMonth + '-' + day)).day();
    if(d === 5 || d === 6) {
      this.isWeekend = true
    } else {
      this.isWeekend = false
    }
    return this.days[d]
  }
}

1 个答案:

答案 0 :(得分:4)

要在渲染组件时更改isWeekend,因此导致组件重新渲染,我相信这会导致无限循环。

请勿将isWeekend作为dayOfWeek的一部分进行计算。我认为最好的解决方案是创建另一种方法。

编辑:如注释中所建议,使用计算值可能是更好的解决方案。