Javascript VueJS日历来回移动一个月

Javascript VueJS日历来回移动一个月,javascript,vue.js,Javascript,Vue.js,我已经建立了一个日历,其中显示了日期表和相应的日期,我想添加一个功能,以便在月份之间进行更改。我在这里采用的方法确实有效。它可以追溯到一个月前,当我点击一个按钮,这个功能。但是只有一次,这是因为selectedDate没有更新,所以当我尝试使用我注释掉的console.log(selectedDate)进行调试时,它仍然打印今天的日期。。希望有人能帮我 methods: { prevMonth() { var selectedDate = moment(new Date());

我已经建立了一个日历,其中显示了日期表和相应的日期,我想添加一个功能,以便在月份之间进行更改。我在这里采用的方法确实有效。它可以追溯到一个月前,当我点击一个按钮,这个功能。但是只有一次,这是因为selectedDate没有更新,所以当我尝试使用我注释掉的console.log(selectedDate)进行调试时,它仍然打印今天的日期。。希望有人能帮我

methods: {
  prevMonth() {
    var selectedDate = moment(new Date());
    let futureMonth = moment(selectedDate.subtract(1, 'month')).startOf('month')
        selectedDate = futureMonth;
    //return console.log(selectedDate)
    this.days = [...Array(futureMonth.daysInMonth())].map((_, i) => {
      return {
        date: futureMonth.clone().add(i, "day"),
        workhours: Math.floor(Math.random()*10),
        overtime: Math.floor(Math.random()*10),
        flextime: 0,
        sickness: 0,
        vacation: 0,
      }

    })
  }
}

每次运行此方法时,都将selectedDate设置为
时刻(new Date())
。所以它总是以今天为基础追溯到一个月前

您需要保持selectedDate的状态,类似这样的方式应该可以工作:

data() {
  return {
    selectedDate: undefined
  }
},
mounted() {
  this.selectedDate = moment(new Date())
},
methods: {
  prevMonth() {
    let futureMonth = moment(this.selectedDate.subtract(1, 'month')).startOf('month')
    this.selectedDate = futureMonth;
    ......
    })
  }
}