Element UI + vue2 下 日期选择框 赋值 number 类型的值时的报错处理

解决方案:
将接口返回的number型数据 toString() 一下,转换成String类型即可。
date = resDate.toString()

背景:

在使用 Element UI 2.15.7 + vue2 时,给日期选择框(format:yyyyMMdd) 赋值的 值从接口中获取时,如果接口返回了 number 类型的数据,赋值时会报如下错误:

TypeError: e.match is not a function
    at u.parse (index.min.js:1:4574)
    at Sn (index.min.js:1:249799)
    at Jn (index.min.js:1:252917)
    at Qn (index.min.js:1:252983)
    at a.parsedValue (index.min.js:1:258092)
    at pn.get (vue.min.js:6:26867)
    at pn.evaluate (vue.min.js:6:28007)
    at a.parsedValue (vue.min.js:6:29911)
    at a.displayValue (index.min.js:1:257696)
    at pn.get (vue.min.js:6:26867)

解决方案

将返回的number型数据 toString() 一下,转换成String类型即可。
date = resDate.toString()

可能的说明

该组件的值类型可能不支持number类型,
日期选择框 可接受的值类型:Date | string | Date[] | string[]
参考:
// \[email protected]@element-ui\types\date-picker.d.ts

/** DatePicker Component */
export declare class ElDatePicker extends ElementUIComponent {
  /** The value of the date picker */
  value: Date | string | Date[] | string[]
  // ...
} 

相关代码

<el-date-picker 
	v-model="date" 
	type="date" 
	format="yyyyMMdd" 
	value-format="yyyyMMdd"
/>

说明

作者是半半个前端,偶尔写写前端,遇到的小问题分享下,如有同遇可参考下。

如有理解的不对的,帮忙纠正告知下哈,欢迎讨论。

你可能感兴趣的:(前端,ui,javascript,vue.js,前端,elementui)