javascript - 当我们通过按钮添加时,禁用的日期不会在 View 上更新

标签 javascript datetime vue.js vuejs2 vue-component

我使用了 vue-hotel-date-picker 它工作正常。问题是当使用禁用日期 Prop 时,它在初始化和更新日历时第一次禁用日期。但是当我在任何按钮单击事件上更新禁用日期数组时,它会更新禁用日期数组,但不会在 View 组件中反射(reflect)或呈现。我已经通过 vuejs chrome 扩展进行了调试。

这是调试时的图像 enter image description here

插件link

这是我的HTML代码

<div class="box">
    <h3>Check in only on saturday and minimum stay of 10 days</h3>
    <DatePicker
      DatePickerID="01"
      :disabledDates = "disabledDates"
      :enableCheckout="true"
      :minNights="10"
      :useDummyInputs="false"
       placeholder="StartDate ► EndDate"
      />
  </div>
  <button @click="onChangeDisableDates()" > Change Disable Dates </button>

JS

<script>
import DatePicker from 'components/HotelDatePicker.vue';

export default {
    components: {
        DatePicker
    },

    data () {
      return {
         disabledDates : ['2017-08-18']
      }
    },
    methods : {
      onChangeDisableDates () {
         this.disabledDates.push("2017-08-19");
      }
    }
};

</script>

我不知道如何找出并解决这个问题,这可能是这个插件的问题,任何帮助将不胜感激!

最佳答案

写入compute: { },一旦有变化就会更新。

import DatePicker from 'components/HotelDatePicker.vue';

export default {
  components: {
    DatePicker
  },
  data() {
    newDisabledDates: null
  }
  computed: {
    disabledDates() {
      // write your disable date change logic or fetch from any other data var
      if (this.newDisabledDates === null) {
        //default logic
        return {
          disabledDates: ['2017-08-18']
        }
      } else {
        // this.newDisabledDates would have been updated here if button clicked
        return {
          disabledDates: this.newDisabledDates
        }
      }
    }
  },
  methods: {
    onChangeDisableDates() {
      this.newDisabledDates.push("2017-08-19");
    }
  }
};

关于javascript - 当我们通过按钮添加时,禁用的日期不会在 View 上更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45705340/

相关文章:

javascript日期和时间加入

javascript - 在 Vue.JS 中循环以迭代一些项目并将它们包装在一个元素中

用于确定电子邮件域的 JavaScript RegEx(例如 yahoo.com)

JavaScript:获取整数的 90% 到最接近的整数?

javascript - 什么是 a ^ b 和 (a & b) << 1?

mysql - 从 MySQL 中的日期时间间隔中提取统计信息

javascript - 如何缩短重复验证码

python - 将日期时间打印为 DD-MM-YYYY

javascript - 如何将 Internet Explorer 10 支持添加到简单的 VueJs 组件?

javascript - "watch"Vuex模块有可能吗?