在工作过程中,用到了elementUI的<el-date-picker>组件,点击后控制台报错了:
看了一些博文,说写上组件写上value-format属性(原本已经这么写了),然后v-model绑定数据默认是null,试了一下没有效果,继续排查代码。发现是用到了fillZero()方法,方法中传的参数不是字符串。
解决办法:
1. 在方法中,判断参数是否为字符串,不是就String转化成一下。
2.在代码中,直接String一下参数
// 最初写法
export const fillZero = str => str.replace(/^(\d)$/, "0$1");
// 更改后写法
export const fillZero = str => {
typeof str === 'string'? str : str = String(str)
return str.replace(/^(\d)$/, "0$1")
};
// 另外一种方法
this.form.date =
month == 1 ? `${year - 1}12` : `${year}${fillZero(String(month - 1))}`;
因为我的项目中,fillzero做了封装多处组件在使用,所以直接采用第一种方法比较方便。
第二种也是可以的。
总结:
str参数类型不是字符串。