解决方案:
将接口返回的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[]
参考:
// \_element-ui@2.15.12@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"
/>
说明
作者是半半个前端,偶尔写写前端,遇到的小问题分享下,如有同遇可参考下。
如有理解的不对的,帮忙纠正告知下哈,欢迎讨论。