在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ vue 多個計算屬性依賴一個值,會導(dǎo)致該值被改變?

vue 多個計算屬性依賴一個值,會導(dǎo)致該值被改變?

問題是這樣的:模板中用了iview的日期選擇器這個組件,綁定了searchTime這個值,然后寫了兩個計算屬性,里面分別都用到了searchTime,但是打印里面的數(shù)據(jù)的時候,發(fā)現(xiàn)xlist這個searchTime是正常的,但是在dataObj這個計算屬性中,searchTime已經(jīng)被改變了,也就是說,看起來是xlist中是直接作用于searchTime,寫的startTime并沒有一個拷貝的感覺,導(dǎo)致xlist操作一遍之后searchTime的值已經(jīng)發(fā)生改變,dataObj無法正常使用。不是很理解為什么會這樣,有沒有大神可以解釋下

<template>

 <DatePicker v-model="searchTime" @on-change="searchTimeChange($event)" :options="disableDate" type="daterange" placement="bottom-start" placeholder="選擇日期" style="width: 200px"></DatePicker>

</template>
<script>

data:{
    searchTime
}
computed: {
    xList () {
    var list = []
    let startTime = this.searchTime[0]
    let endTime = this.searchTime[1]
    while ((endTime.getTime() - startTime.getTime()) >= 0) {
      let month = (startTime.getMonth() + 1).toString()
      let day = startTime.getDate().toString()
      list.push(`${month}月${day}日`)
      startTime.setDate(startTime.getDate() + 1)
      console.log('xList', endTime, startTime)
    }
    return list
  },
  dataObj () {
    let startTime = this.searchTime[0]
    let endTime = this.searchTime[1]
    console.log(this.searchTime, startTime, endTime)
  }
}

</script>

clipboard.png

回答
編輯回答
雅痞

new Date()是個對象
startTime.setDate(startTime.getDate() + 1)這一步操作會修改掉this.searchTime[0]的值。

2018年1月19日 17:48