element 日期选择器 踩坑记录

 <el-date-picker
      v-model="value1"
      type="datetimerange"
      range-separator="至"
      start-placeholder="开始日期"
      end-placeholder="结束日期">
    </el-date-picker>

问题一 点击清空按钮报错

问题二 修改无效 视图不更新

问题一 点击清空按钮报错

点击清空按钮之后 会显示 TypeError: Cannot read property ‘0’ of null

原因是因为原本value1的值是数组 清空按钮之后就变null 所以就报错了

方法一

可以使用事件监听 监听value1的值等于null就换成数组 

 watch: {
	value1 (newval) {
		if (newval === null) {
			this.value1 = []
		}
	}
}
方法二

使用清空事件

 <el-date-picker
      v-model="value1"
      type="datetimerange"
      range-separator="至"
      start-placeholder="开始日期"
      end-placeholder="结束日期"
      @clear="handleClearValue1"
      >
    </el-date-picker>


handleClearValue1() {
	this.value1 = []
},

问题二 修改无效 视图不更新

如果有默认时间我点击清空按钮无效 但是事件传参显示时间为空 并且使用nextTick也不生效 应该是视图更新的问题

解决方法
 <el-date-picker
      v-model="value1"
      type="datetimerange"
      range-separator="至"
      start-placeholder="开始日期"
      end-placeholder="结束日期"
      @clear="handleClearValue1"
      @input="changeDate"
      >
    </el-date-picker>


changeDate () {
	this.$forceUpdate()
},

最后附上传参判断

query () {
  this.valueStart = this.value1 && this.value1.length >= 2 ? this.value1[0] : null
  this.value1End = this.value1&& this.value1.length >= 2 ? this.value1[1] : null
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值